JAVA中的面向对象思想

面向对象编程思想

一、对象的定义

一切客观存在的事物都是对象,万物皆对象。

一个对象无非由两点构成
对象所具备的特征:对象有什么
对象所具备的行为:对象能做什么

在计算机中的对象
对象的特征:将来用数据代替特征描述,对象的属性
对象的行为:将来用函数代替行为实现,对象的方法;


  • 即对象具有以下特性:

(1)万物皆对象。问题领域中的实体和概念都可以抽象为对象。
(2)每个对象都是唯一的。对象的唯一性来自于真实世界中事物的唯一性。在Java虚拟机提供的运行时环境中,保证每个对象的唯一性的手段是为它在内存中分配唯一的地址
(3)对象具有属性和行为。对象的行为包括具有的功能及具体的体现。在建立对象模型阶段,仅仅关注对象有什么样的功能,而不需要考虑如何实现这些功能。对象的属性就用成员变量表示,对象的行为就用成员方法表示
(4)对象具有状态。状态是指某个瞬间对象的各个属性的取值。对象的某些行为往往会改变对象自身的状态,即属性的取值。
(5)对象都属于某个类,每个对象都是某个类的实例。类是具有相同属性和行为的对象的集合。


小结

同一个类的所有实例具有相同属性,表明它们的属性的含义相同,但是它们的状态不一定相同,也就是说属性取值不同。例如两个学生,小明和小红,他们都有姓名、性别、年龄、身高、体重等属性,但是他们的属性取值并不相同
同一个类的所有实例包括类本身的所有实例及其子类的所有实例。类的所有实例具有相同的行为,意味着它们具有一些相同的功能。类本身的所有实例按照同样方式实现相同功能,而子类与父类之间,以及子类之间的实例可能采用不同的方式来实现相同的功能。


二、成员变量与局部变量的区别

局部变量 成员变量
定义位置 方法内
默认值
作用范围 方法内
命名冲突 不允许重名

三、方法的重载(OverLoad)

1、作用:在一个类中可以定义多个同名的方法,屏蔽使用时的差异,更加方便。

2、语法:方法名相同,参数个数、类型、顺序不同。
例:这里写图片描述

3、调用时,编译器根据实参匹配相应的方法(编译时多态)


四、构造方法

1、概念:一种特殊的方法,创建对象时自动调用
2、作用:通常使用构造方法,为属性赋值,完成初始化任务
3、语法及特点

1)构造方法的方法名与类名一致
2)没有返回值类型
3)不可手动调用(不能通过引用名去调用)
4)支持重载的语法

class Student{
    //设置Student类的属性
    int age;
    String name;
    //Student的无参构造方法
    public Student(){

    }
    //Student的有参构造方法
    public Student(int age,String name){
        this.age = age;
        this.name = name;
    }
}

注意:

1、如果没有手动定义构造方法,编译器默认提供无参构造
2、如果手动添加构造,则无参构造不再提供,需手动添加


五、数据传递规则

1、基本类型传值,两者一方更改,不影响另一方
2、引用类型(对象,数组)传地址,两者之间任何一方更改,影响另一方


六、对象的默认引用:this

当一个对象创建好之后,java虚拟机就会给它分配一个引用自身的指针:this。所有对象默认的引用名都叫this。

在程序中,在以下情况下会使用this关键字:

  • 在类的构造方法中,通过this语句调用这个类的另一个构造方法。
  • 在一个实例方法内,局部变量或参数和实例变量同名,实例变量被屏蔽,因此采用this的方式来指代实例变量
  • 在一个实例方法内,访问当前实例的引用

this()

作用:在构造方法中调用其他构造方法
注意:

1.该语法只能出现在构造方法中
2.必须放在构造方法的第一行

猜你喜欢

转载自blog.csdn.net/ToFarAway/article/details/81433118