欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA中的面向对象思想

程序员文章站 2022-03-10 18:44:26
...

面向对象编程思想

一、对象的定义

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

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

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


  • 即对象具有以下特性:

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


小结

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


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

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

三、方法的重载(OverLoad)

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

2、语法:方法名相同,参数个数、类型、顺序不同。
例:JAVA中的面向对象思想

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.必须放在构造方法的第一行