一、什么是面向对象
面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。
对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。
为了让大家通俗易懂,写如下5个关于面向对象的思想便于大家理解
①面向:拿或者找
②对象:东西
③面向对象编程:拿或者找东西过来编程解决问题
④面向对象:把现实中的事物全部看成一个一个的对象来解决问题的。(万物皆对象)
⑤面向对象编程的好处:代码符合人类的思维习惯,编程程序更简单,看程序更容易理解吧
二、类、对象
①类(设计图):相同事物共同特征的描述
②对象:对象是类的具体的实例。——对象==实例
③在Java中必须先定义类,才能得到对象。
三、如何定义类来创建对象使用?
1、定义类的格式
public class类名{
1、成员变量(代表属性一般是名词):数据类型名称;
2、成员方法(代表行为,一般是动词)
3、构造器
4、代码块
5、内部类
2、定义类的格式
定义类有一些注意事项
1、类名首字母建议大写,有意义,满足驼峰,不要用关键字,合法的标志符
2、一个Java文件中可以定义多个类,但是只能一个类是public修饰的,而且public修饰的类名必须成为Java代码的文件名称,否则报错!
3、类中具体怎么写
1、比如定义汽车类
2、一般名词定义成成员变量(属性):
①修饰符数据类型变量名称=初始值;
②private String name;
③private double price;
④成员变量不建议给初始化值,存在默认值,默认值的规则:整型是o,浮点型是0.0 引用类型null,布尔型是false
3、一般动词定义成方法(行为)
4、具体定义类的例子
public class Car {
//名词(属性,成员变量)String name;
double price;
//动词(行为,成员方法)public void start(){
System.out.println(name +"价格是"+ price +"启动成功~~");
}
public void run(){
System.out.println(name +"价格是"+ price +"性能很好,跑的很快~~");
}
5、创建对象
1、类名对象名=new构造器();
2、对象怎么使用 ①对象名:成员变量 ②对象名:成员方法
四、构造器
1、作用:初始化一个类的对象,并返回这个对象的地址。
2、详细格式:修饰符类名(形参){...}
3、构造器分类
①无参数构造器:初始化一个类的对象,并返回这个对象的地址,里面的数据都是默认值
②有参数构造器;初始化一个类的对象,并返回这个对象的地址,并且可以同时为对象赋值。
4、构造器如何调用?
类名对象名= new构造器;
5、注意:
1、任何类写出来自带一个无参数构造器,写不写都有
2、如果你在这个类中定义了一个有参数构造器了,那么无参数构造器就消失了,此时,如果你还要使用无参数构造器,你必须自己写一个。
5、this关键字
1、this的作用:代表了当前对象的地址,可以访问当前对象的成员变量和成员方法。
2、this具体用在哪?
①可以用在有参数构造器中的
如下代码:
public Car(String name, double price){
//注意: this在构造器中,代表构造器正在初始化的那个对象。
System.out.println(this);
this.name = name;
this.price = price;
}
②可以用在方法中
public void goWith(String name){
//注意:this在方法中,谁调用这个方法this就代表谁!
System.out.println(this.name +"正在和"+name +"比赛");
}
五、封装
1、面向对象的三大特征:封装、继承、多态。
2、封装的基本思想:决定属性和行为归属谁的问题
①定义人类(名称,年龄,吃饭、睡觉)
②定义圆类——半径,画圆
③定义门类——开门,高宽
④定义票类——票价,地址,买票
3、如何更好的封装呢?
①成员变量建议private私有化,只能本类访问了。
②合理暴露:提供成套的getter和setter方法暴露取值和赋值
③④⑤