![在这里插入图片描述](https://img-blog.csdnimg.cn/8cd66696f8a44d699f46dc94dbf9f51e.png#pic_center)
面向对象编程oop
面向对象的思想
面向:拿、找
对象:东西
面向对象编程:拿、找东西过来编程或解决问题
面向对象:吧现实世界中的问题看成一个个的对象,万物皆对象
好处:符合人类思维,简单
类、对象
类:设计图--相同事务共同特征的描述
对象:对象是类的具体的实例
对象=实例
在java中必须先定义类,才能定义对象
**如何定义与使用:**
public class 类名{ //1成员变量、2成员方法、3构造器、4代码块、5内部类}
注意:类名首字母大写,驼峰命名
一个java一个类用public修饰,且与文件名相同
**类中怎么写**
汽车为例
属性:名词, 行为:动词
修饰符 数据类型 变量名=初始值;
public String name;
private double price;
成员变量不建议初始化,存在默认值:0,null,false
创建对象
类名 对象名=new 构造器();
对象如何使用
对象名.成员变量
对象.成员方法
构造器
作用
初始化一个类的对象,并返回这个对象的地址
详细格式
修饰符 类名(形参){....}
分类
无参
初始化一个对象,并返回一个地址,里面的数据都是默认值
有参
初始化以一个对象,并返回对象地址,同时可以为对象赋值
注:写了有参构造器之后,就必须重写无参构造器,因被覆盖
构造器的调用
类名 对象名=new 构造器;
任何类写出来自带无参构造器
this关键字
this作用:**代表了当前对象的地址,可以访问当前对象的成员变量和成员方法**
具体使用:
可以用在有参构造器中
可以用在方法中
public Car(String name,double price) {
this.name=name;
this.price=price;
}
public void goWith(String name) {
System.out.println(this.name+"和"+name+"比赛");
}
封装
面向对象三特征:继承、封装、多态
基本思想:**决定属性和行为归属于谁**
定义人类:name,age,eat,sleep
圆类:r,circle
门类:open,height
票类:price,add,buy
**更好的封装:**
成员变量建议private私有化,只能由本类访问
**合理的暴露:提供成套的setter与getter方法暴露取值与赋值**
标准javabean
实体类:老师、学生、人、票...测试类就不是实体类
作用:创建对象,封装数据--一个对象一个实体
标准bean要求
成员变量建议private私有化,只能由本类访问
合理的暴露
提供成套的setter与getter方法暴露取值与赋值
必须提供无参构造器