Java类和对象的定义与使用小结
Java是纯面向对象语言,类作为模板描述对象的属性和行为,通过实例化创建对象。this引用区分成员变量与局部变量,构造方法在创建对象时自动调用且仅一次,支持重载与默认初始化。
一.是面向对象
1.1什么是面向对象
Ja va是一门纯面向对象的语言。在面向对象的世界里,一切皆对象。你可以把面向对象理解为一种解题思路——核心在于通过对象之间的协作来完成任务,而不是靠某个单一的流程硬推。

1.2面向对面向过程:
不妨拿洗衣服这件事来对比一下:
面向过程:
拿衣服 → 放盆里 → 加水 → 加洗衣粉 → 搓洗 → 晾干
面向对象:
找洗衣机 → 放衣服 → 按按钮 → 等待 → 晾干
面向对象的思路是把复杂问题拆分成多个对象,每个对象只负责自己那一摊事。你不需要知道洗衣机内部怎么转的,会用就行——这就是封装的魅力。
二.类和对象的定义和使用
2.1认识类(class)
类是用来描述一个实体(对象)的模板,主要说明这个实体有哪些属性(特征)和哪些功能(行为)。描述清楚了,计算机才能识别它。
举个简单的例子:学生就是一个类,它有属性(年龄、性别),也有行为(学习、运动)。
//定义一个学生类
class Student{
//类的属性
int age;//年龄
String name;//名字
}
class是定义类的关键字,Student是类名,花括号里是类的主体。类里包含的内容统称“类的成员”,其中属性用来描述特征,方法用来描述功能。
下面再拿洗衣机举一个完整的例子:
class WashMachine{
public String brand; // 品牌
public String type; // 型号
public double weight; // 重量
public double length; // 长
public double width; // 宽
public double height; // 高
public String color; // 颜色
public void washClothes(){ // 洗衣服
System.out.println("洗衣功能");
}
public void dryClothes(){ // 脱水
System.out.println("脱水功能");
}
public void setTime(){ // 定时
System.out.println("定时功能");
}
}
注意事项
:1. 一般一个文件里只定义一个类。
2. main方法所在的类通常要用
public修饰(Eclipse 默认会在 public 修饰的类中找 main 方法)。3. public 修饰的类名必须和文件名保持一致。
4. 不要随意修改 public 修饰的类名,如果确实需要改,请通过开发工具操作。
2.2认识对象
对象(Object) 是类的具体实例。用类类型创建对象的过程,称为类的实例化。
好比张三、李四都是“学生类”的对象——张三是一个,李四是另一个。
public class Test {
public static void main(String[] args) {
// 创建对象
Student s1 = new Student();
s1.name = "张三";
s1.age = 18;
s1.study(); // 张三正在学习
Student s2 = new Student();
s2.name = "李四";
s2.age = 17;
s2.study(); // 李四正在学习
}
}
注意事项
:
new关键字用来创建一个对象的实例。使用
.来访问对象中的属性和方法。同一个类可以创建多个实例。
2.3类和对象的关系
类是模板,是蓝图;对象是实体,是施工成果。
类实例化出对象,就像用建筑设计图建造出真实的房子。设计图上标明了需要什么材料、什么结构,但并没有实体建筑存在。类只是一个设计,只有实例化出对象,才能真正存储数据、占用物理空间。
三.this引用
3.1this引用的作用
this 代表当前对象的引用,主要用来区分成员变量和局部变量——当参数名和成员变量重名时,this 就是那个“我自己”的标识。
class Person {
// 成员变量
String name;
int age;
// 构造方法:参数名和成员变量重名了!
public Person(String name, int age) {
// this.name = 自己的name
this.name = name;
// this.age = 自己的age
this.age = age;
}
public void showInfo() {
System.out.println("姓名:" + this.name);
System.out.println("年龄:" + this.age);
}
}
public class Test {
public static void main(String[] args) {
Person p = new Person("小明", 20);
p.showInfo();
}
}
3.2 this引用的特性
1. this 的类型就是对应类的引用类型——哪个对象调用它,它就是哪个对象的引用。
2. this 只能在成员方法中使用。
3. 在成员方法中,this 只能引用当前对象,不能转而引用其他对象。
四.构造方法
4.1什么是构造方法
构造方法(也称构造器)是一个特殊的成员方法,它的名字必须与类名相同。在创建对象时,编译器会自动调用它,并且在整个对象的生命周期内只调用一次——就像人的出生,每个人只能出生一次。
class Dog{
String name;
int age;
//带参数构造
public Dog(String name,int age){
this.name = name;
this.age = age;
}
public void info(){
System.out.println(name+","+age+"岁");
}
}
public class TestDog{
public static void main(String[] args) {
//创建对象时传参
Dog d = new Dog("旺财",3);
d.info();
}
}
4.2构造的特性
1. 名字必须与类名相同。
2. 没有返回值类型,设置成
void也不行。3. 创建对象时由编译器自动调用,且只调用一次。
4. 构造方法可以重载——根据需求提供不同参数的构造方法。
4.3默认初始化
public class DefaultValueDemo {
// 8种基本类型 + 引用类型,全都没有手动赋值
byte b;
short s;
int i;
long l;
float f;
double d;
char ch;
boolean bool;
String str;
// 构造方法:创建对象时自动打印所有默认值
public DefaultValueDemo() {
System.out.println("byte 默认值:" + b);
System.out.println("short 默认值:" + s);
System.out.println("int 默认值:" + i);
System.out.println("long 默认值:" + l);
System.out.println("float 默认值:" + f);
System.out.println("double 默认值:" + d);
System.out.println("char 默认值:[" + ch + "]");
System.out.println("boolean默认值:" + bool);
System.out.println("String 默认值:" + str);
}
public static void main(String[] args) {
// 创建对象 → 自动调用构造 → 一次性输出所有未初始化的值
new DefaultValueDemo();
}
}
//运行结果
//byte 默认值:0
//short 默认值:0
//int 默认值:0
//long 默认值:0
//float 默认值:0.0
//double 默认值:0.0
//char 默认值:[]
//boolean默认值:false
//reference 默认值:null
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















