设计类,创建对象并使用

在Java中首先要设计类,才能创建对象
类(设计图):是对象共同特征的描述; 对象: 是真实存在的具体案例
image.png
image.png

如何定义类

  1. public class 类名{
  2. 1.成员变量(代表属性,一般是名词);
  3. 2.成员方法(代表行为,一般是动词);
  4. 3.构造器;
  5. 4.代码块;
  6. 5.内部类;

如何得到对象和使用对象

image.png

定义类的几个注意事项

image.png

对象内存图

多个对象的内存图

image.png
1.首先编译后的字节码文件和main加载到方法区,然后执行
2.在执行到Car c1=new Car()时,在栈内存中创建对象c1
3.执行Car c1=new Car()的new时,在堆内存中为这个对象分配内存空间,注意堆内存中只为成员变量分配了内存空间而没有为成员方法分配内存空间,因为所有的成员方法都是一样的,只需要在方法区存储一份,在需要的时候调用即可
4.在方法进行调用时的流程是:先到栈内存中找到c1,读取其中的地址,通过地址找到堆内存中存储的方法体,找到堆内存方法体中的成员方法引用地址找到对应的方法,放到栈内存中进行运行,由于是通过c1找到的计算机会进行传参时会传递c1的值
image.png

两个变量指向同一个对象的内存图

image.png

垃圾回收机制

当堆内存中的类对象数组对象,没有被任何变量引用时,机会被判定为内存中的“垃圾”
java中存在自动垃圾回收器,会定期的清理垃圾

构造器

学习构造器的目的

1.真正知道对象具体通过调用什么代码完成的
2.能够掌握为对象属性赋值的其他写法

构造器的作用

用来初始化一个类的对象,并返回对象的地址
image.png
红色部分就是一个构造器

构造器的格式

修饰符 类名(形参列表){

}
image.png

构造器的分类(类似方法重载)

1.无参构造器(默认存在的):初始化对象时,成员变量均采用默认值
2.有参构造器(自己写的):在初始化对象的时候,同事可以为对象进行赋值

构造器的注意事项

1.任何类定义出来,默认自带无参数构造器,写不写都可以
2.一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了

this关键字

作用:出现在成员方法,构造器中代表当前对象的地址,用来访问当前对象的成员变量,成员方法
image.png

封装

面向对象的三大特征:封装,继承,多态

什么是封装

隐藏实现细节,暴露出合适的访问方式,(合理隐藏,合理暴露)

怎么实现封装

image.png

封装的好处

加强了程序代码的安全性
适当的封装可以提升开发效率,同时可以让程序更加容易理解和维护

标准JavaBean

可以理解为实体类,其对象可以用于程序中封装数据

标准JavaBean的要求

1.成员变量使用private修饰
2.提供每一个成员变量对用的get()/set()方法
3.必须提供一个无参构造器