1、面向对象的认知
1.1什么是面向对象
Java是一门纯面向对象的语言,在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。
1.2面向对象与面向过程
举个例子: 穿了一天的脏衣服要经过以下步骤才能变干净。

上述每个步骤都参与的我们称为面向过程。
那什么是面向对象?
我们以现代洗衣服的过程来说明。

总共有四个对象:人、衣服、洗衣服、洗衣机,整个过程是四个对象之间交互完成的,人不需要关心洗衣机具体是怎么完成洗和甩干的。
以面向对象方式来进行处理,就不关注洗衣服的过程,具体洗衣机是怎么来洗衣服,如何来甩干的,我们不用去关 心,只需要将衣服放进洗衣机,倒入洗衣粉,启动开关即可,通过对象之间的交互来完成的。
2、类定义和使用
2.1 认识类
类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。
比如:电饭煲,它是一个品牌,在Java中可以看成是一个类别。
属性:产品品牌,型号,产品重量,外观尺寸,颜色...
功能:加热、保温、定时....
2.2类的定义格式
在java中定义类时需要用到class关键字,具体语法如下

class RiceCooker {
//成员属性或者成员变量
public String brand;//品牌
public String type;//型号
public double weight;//重量
public double length;//长
public double width;//宽
public double height;//高
public String color;//颜色
//成员方法
public void heating(){ //加热
System.out.println("煮饭......");
}
public void heatpreservation(){ //保温
System.out.println("保温......");
}
public void atregulartime(){ //定时
System.out.println("定时.....");
}
}
注意事项
- 类名注意采用大驼峰定义。
- 成员前写法同一为public。
- 此处写的方法不带static关键字。
现在知道如何定义一个类的语法,以及知道了什么是类,那么如何去用?
3、类的实例化
定义了一个类,就相当于在计算机中定义了一种新的类型。
用类的类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。
例如:
//类 class Cat{ // 成员变量 public String name; public String color; public int age; //成员方法 public void bark(){ System.out.println("喵喵喵....."); } public void wag(){ System.out.println("竖尾巴......"); } }Cat cat = new Cat(); Cat cat1= new Cat(); 由 类 生成 对象的 过程 叫做实例化。或者这么理解, 对象是 被实例化 的 类。
那么对象当中有什么? 以及如何使用对象?

public class Main { public static void main //通过入口开始执行 (String[] args) { Cat cat=new Cat(); cat.name="月饼"; cat.color="黑白"; cat.age=5; System.out.println(cat.name); System.out.println(cat.color); System.out.println(cat.age); cat.bark(); cat.wag(); }运行结果:
月饼
黑白
5
喵喵喵.....
竖尾巴......
结论:通过对象的引用可以去访问对象的成员变量。同时也可以访问对象的成员方法。
注意:
- 成员变量会有一个默认值:1.引用类型默认为null。2.基本数据类型默认为对应的0值。

- 局部变量在使用时要进行初始化,否则无法编译。

实例化对象是否有限制?

答:无限制,可以通过关键字new 实例化多个对象。
也可以通过方法赋值。

按照上述顺序执行。
如果形参名和成员变量同名,输出值是否改变?
public void setDate(int year,int month,int date){ //形参自己给自己赋值,并没有修改到对象当中的 year month date year=year; month=month; date=date; }运行结果:
0年0月0日
0年0月0日
0年0月0日原因:此时在方法内 year month date 都是局部变量。此时局部变量优先使用
如何解决?
答:加this关键字。
public void setDate(int year,int month,int date){ this.year=year; this.month=month; this.date=date; }运行结果: 2025年6月14日
4、this的使用
this代表什么?
答:代表当前对象的引用。
什么又是当前对象,如何判断当前对象?以及当多个对象都调用同一个setDate时,怎么区分是哪个对象调用方法中的方法体?


哪个对象的引用 调用了该方法,this代码哪个对象,则调用this的对象为当前对象。
public void setDate(Date this //作为隐藏的第一个参数传递值,可省略。 ,int year,int month,int date){
this.year=year;
this.month=month;
this.date=date;
}
this的三种用法:
- 通过this访问,当前对象的成员变量。
- 通过this访问,当前对象的非静态的成员方法。
this在静态方法中会报错- 通过this访问,当前对象的其他构造方法。
5、构造方法
语法:

方法名需要和当前类名一样。
class Date{
public Date(){
System.out.println("调用该方法........");
}
}
怎么使用构造方法?
在实例化新对象时,至少有2个步骤:
- 为对象分配内存
- 调用合适的构造方法

运行结果:
实例化对象时,可以借用构造方法 对对象进行初始化。
特别说明:

这个情况为什么不报错?
没写任何构造方法时,Java会默认给你提供一个不带参数的构造方法,但是一旦有其他的Java不会再提供! ! !

结论:要么写全,要么不写。
这时候有聪明的小伙伴突然发问
路人甲:哎 ! 既然this可以传值那能不能这么写?
public Date(){
this(2000,6,7);
}
public Date(int y,int m,int d){
this();
this.year=y;
this.month=m;
this.date=d;
printDate();
System.out.println("调用该方法........");
}
我:不行! 为啥啊? 因为成闭环了,跳不出去。
路人甲:不信.......
我:(啪)

路人甲(点赞)。
-----------------------------------------------------------------完-------------------------------------------------------------
2398

被折叠的 条评论
为什么被折叠?



