参照2021黑马程序员最新视频
面向对象
1.类和对象是什么
类:是共同特征的描述
对象:是真实存在的具体实例
2.如何设计类?
public class 类名{
//1.成员变量 (代表属性的,一般是名词)
//2.成员方法 (代表行为的,一般是动词)
}
public class Car{
String name;
double price;
public void start(){
}
public void run(){
}
}
如何创建对象?
类名 对象名=new 类名();
Car c = new Car();
拿到对象后怎么访问对象的信息?
对象名.成员变量
对象名.成员方法(...)
c.name
c.start()
定义类的注意事项
类名首字母建议大写,且有意义,满足驼峰命名法
一个java文件中可以有多个class类,但只能一个类是public修饰,而且public修饰的类名必须成为文件代码名。
实际开发中建议还是一个文件夹定义一个class类
成员变量的完整定义格式是: 修饰符 数据类型 变量名称=初始化值;
一般无需指定初始化值,存在默认值。
内存机制
如下图
构造器
定义在类中的,可以用于初始化一个类的对象,并返回对象的地址
构造器形式
修饰符 类名(形参列表){
//...
}
public class Car{
//无参构造器
public Car(){
}
public Car(String n,double,p){
//...
}
}
调用构造器得到对象的格式
类 变量名称=new 构造器();
Car c = new Car();
Car c1 = new Car("奔驰",39.8);
分类和作用
无参构造器(默认存在的):初始化对象时,均采用默认值
有参构造器:在初始化对象的时候,同时可以接收参数为对象进行赋值
构造器的注意事项
如果写了有参构造器,则默认的无参构造器会被覆盖
this关键字
通常出现在构造器、方法中,代表当前对象的地址
可以用于指定访问当前对象的成员变量、成员方法
谁调用this就指向谁
封装
如何正确设计对象的属性和方法?
原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为
比如人画圆,对象是人和圆,需要给圆提供draw方法,半径属性
如何封装更好?
一般建议对成员变量使用private关键字修饰(private修饰的成员只能在当前类中访问)
为每个成员变量提供配套public修饰的getter、setter方法暴露其取值和赋值
标准JavaBean
也可以称为实体类,其对象可以用于在程序中封装数据
书写要求:
1.成员变量用private修饰
2.必须为成员变量提供成套的getter和setter方法
3.必须提供一个无参构造器,有参构造器是可写不可写
成员变量和局部变量区别
成员变量 | 局部变量 |
---|---|
类中,方法外 | 常见于方法中 |
有默认值,无需初始化 | 没有默认值,使用前完成赋值 |
堆内存 | 栈内存 |
随着对象的创建而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的结束而消失 |
在所归属的大括号中 |
面向对象综合案例
模仿电影信息展示