认识Java的类和对象

背景

JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。
面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来 。面向对象的好处:将复杂的事情变简单了,只要面对一个对象就行。

简介

就是一类对象的统称。
对象就是这一类具体化的一个实例。
总而言之,类相当于一个模板,对象是由模板产生的样本。一个类,可以产生无数的对象。

基本语法

创建类:
class<class_name>{
          ~~~~~~~~~ field;//成员属性
          ~~~~~~~~~ method;//成员方法
}
注:声明一个类就是创建一个新的数据类型,而类在 Java 中属于引用类型, Java 使用关键字 class 来声明类。
class为定义类的关键字,ClassName为类的名字,{}中为类的主体。
类中的元素称为:成员属性。类中的函数称为:成员方法。

实例化对象:
<class_name><对象名>=new<class_name>();

类的实例化

用类类型创建对象的过程,称为类的实例化
语法:
类名 对象名 = new 类名();
//实例化对象,对象是对类的引用,存放着类的属性,对象名存放在JVM栈中,其内存存放着类属性的地址
注:
1.类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它;
2.一个类可以实例化多个对象,每次实例化都会为对象开辟一块内存存放类属性;

类的成员

类的成员可以包含以下:字段、方法、代码块、内部类和接口等。
字段: 在类中,但是方法外部定义的变量。

1.使用.访问对象的字段。 "访问" 既包含读, 也包含写;
2.对于一个对象的字段如果没有显式设置初始值,就会设置一个默认值。

方法: 用于描述一个对象的行为。

代码块:
本地代码块(普通代码块):方法内加一个{ //代码 }
构造代码块(实例代码块):方法外加一个{ //代码 },与方法平级 //作用:初始化实例成员变量
静态代码块:方法外定义一个 static{ //代码 } //作用:只能用于初始化静态成员

1.静态代码块优先于实例代码块执行,实例代码块先于构造函数执行;
2.不管创建多少个对象,静态代码块只执行一次。

static关键字

用于修饰属性、方法、代码块、类。
修饰属性,Java静态属性和类相关, 和具体的实例无关。换句话说, 同一个类的不同实例共用同一个静态属性。

扫描二维码关注公众号,回复: 9254577 查看本文章

修饰方法,如果在任何方法上应用 static 关键字,此方法称为静态方法。

1.静态方法属于类,而不属于类的对象;
2.可以直接调用静态方法,而无需创建类的实例;
3.静态方法可以访问静态数据成员,并可以更改静态数据成员的值。

封装

封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了。这样就降低了类使用者的学习和使用成本, 从而降低了复杂程度。
通过private实现封装,private 修饰的成员变量或者成员方法, 不能被类的调用者使用。

构造方法

基本语法:
public 类名(){ } //没有返回值

构造方法是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作。
new 执行过程为对象分配内存空间、调用对象的构造方法
语法规则
1.方法名称必须与类名称相同
2.构造方法没有返回值类型声明
3.每一个类中一定至少存在一个构造方法(没有明确定义,则系统自动生成一个无参构造)
作用:
构造函数的作用:生成对象(为对象成员变量赋初始值)
注意事项:
1.如果类中没有提供任何的构造函数,那么编译器会默认生成一个不带有参数的构造函数;
2.若类中定义了构造方法,则默认的无参构造将不再生成;
3.构造方法支持重载. 规则和普通方法的重载一致。

this关键字

含义:
this代表当前对象的引用
解释:new执行过程:1.为对象分配内存空间 2. 调用对象的构造方法,而实例化的第一步为对象分配了内存,this就代表了这块内存的地址
用法:
1.this调用本类中的属性(this.成员属性);
2.this调用本类中的方法(this.成员方法);
3.this调用本类中的其他构造方法,调用时要放在构造方法首行。
注意:
1.构造函数可以发生重载(返回值不做要求,方法名相同,参数列表不同);
2.构造函数中this的代码行必须放在第一行;
3.类中被static修饰的方法不能用this(static方法不依赖于对象)。

发布了27 篇原创文章 · 获赞 4 · 访问量 1048

猜你喜欢

转载自blog.csdn.net/Lb_CsdnJava/article/details/103217693