7.面向对象初步,this笔记

面向对象和类的概念:

  1. 对象用计算机语言对问题域中事物的描述,对象通过“属性(attribute)”和“方法(method)”。

  2. 类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所具有的静态属性和动态属性。

  3. 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

!在这里插入图片描述

面向对象和面向过程的区别:

  1. 面向对象还是面向过程都是一种思想,是一种思维方式

  2. 面向过程:"我该如何实现?"然后一步一步实现去完成

  3. 面向对象:"我该找谁去实现?"他如何实现完成不关注,我们只关注这个他是谁

使用面向对象的优点:

  1. 将复杂的问题简单化

  2. 面向对象更贴近于现实生活

  3. 面向对象更贴近于管理者的思维方式,面向过程更适合于执行者的思维方式

  4. 面向对象是依托于面向过程的

自定义类

class 类名{

//成员属性|变量

权限修饰符 数据类型 变量名;

//构造器

修饰类 类名(变量){

变量声明

}

无参构造(){

}

有参构造(属性1,属性2){

this.属性1=属性1;

this.属性2=属性2;

}

重载有参构造(属性1,属性2,属性3){

this.属性1=属性1;

this.属性2=属性2;

this.属性3=属性3;

}

//功能|方法 成员方法

修饰符 返回值类型|void 方法名(){

方法体;

}

}

如何在程序中使用面向对象:

  1. 类 对象

  2. 类:一类事物的模板|一类事物抽象出共性

  3. 对象:根据类|模板定义独一无二的,真实存在的对象|事物

  4. 使用类去描述现实生活中真实存在的事物|对象

New创建对象发生的3个事情

  1. 在堆内存中为对象开辟空间

  2. 调用构造器为对象初始化信息

  3. 将地址返回给引用

构造器|构造方法|构造函数

特殊的方法

构造器的特点

  1. 名称必须和类名一致,与类名相同

  2. 没有返回类型|void

  3. 构造器可以存在 return,return 有选择的跳出构造器

  4. 不能随便调用,和 new 在一起使用,其他时候不能调用

  5. 修饰符不能为 final abstract static
    作用:初始化对象信息,不是用于创建对象的空构造:没有参数的构造器、无参构造

  6. 一个类中,如果没有显示|手动 加入 任意构造器javac 编译后
    自动加入空构造

  7. 一旦加入构造器, javac 不会加入空构造器

作用:

为对象初始化信息,不是创建对象

定义:

修饰符 类名(){

代码;

}

使用:

new对象的时候回调用构造器

注意:

构造器没有方法的返回值|void,不需要return,可以添加return *
构造器不能和static,abstract,final一起使用

如果没有自定义构造器,编译器自动为你条件一个空构造(没有参数的构造器就是空构造)

如果一旦自定义了构造器,编译器都不会在为你提供任何构造器包括空构造

修饰符可以为private,作用是只能在当前这个类中使用

构造器是特殊的方法,可以构成方法的重载的特性

Jvm内存划分,对象的内存分析,放的执行流程:

jvm 的内存划分

!在这里插入图片描述

对象的内存分析

!在这里插入图片描述

方法的执行流程

!在这里插入图片描述

this关键字

this指代当前对象的地址|引用

调用构造器

在构造器的首行调用其他构造器 this([参数])

区分同名变量

this区分同名方法的局部变量|参数和成员变量时候:this指代调用成员方法的对象,存放的就是这个对象的地址

this在构造器中区分同名参数和成员变量的时候,this指代当前调用构造器的对象,this存放的是这个对象的地址

如果不用区分同名变量.this可以省略.如果要区分同名变量,this不能省略,否则会发生就近原则

注意:

不能使两个构造器首行互相调用,会报错,会造成死循环

另外小注意

System.out.println(“Hello java!”)中out是System类的一个静态成员变量

Java语言为所有的Java程序自动导入包“java.lang”,因此Java程序可以直接用“java.lang”中的类和接口。

猜你喜欢

转载自blog.csdn.net/Super_XiongDa/article/details/90142921