
Day13
今日内容
-
复习回顾
-
static关键字
-
继承
第一章 复习回顾
1.1 如何定义类
类的定义格式如下:
修饰符 class 类名 {
// 1.成员变量(属性)
// 2.成员方法 (行为)
// 3.构造方法 (初始化类的对象数据的)
}
例如:
public class Student {
// 1.成员变量
public String name ;
public char sex ; // '男' '女'
public int age;
}
🔹 理论理解
类是面向对象编程(OOP)的基本单位,用来封装数据(属性)和操作(方法)。类的定义提供了对象的模板,是构建复杂系统时的最小组织单元。
🔹 企业实战理解
-
阿里巴巴、字节跳动:严格遵循“一类一文件”,类名必须与文件名一致,便于代码管理。
-
Google Android:大量使用“POJO类”(Plain Old Java Object),定义清晰简单的实体类,提高项目维护性。
1.2 如何通过类创建对象
类名 对象名称 = new 类名();
例如:
Student stu = new Student();
🔹 理论理解
对象是类的实例,通过new关键字调用构造方法来创建,内存中会分配空间,并返回该对象的引用。
🔹 企业实战理解
-
阿里:内部框架(如Dubbo)大量使用工厂模式、单例模式来控制对象创建,避免滥用new导致内存管理混乱。
-
OpenAI:在大型分布式系统中,通常不会直接
new对象,而是交给依赖注入框架(如Spring容器)管理实例的生命周期。
1.3 封装
1.3.1 封装的步骤
1.使用 private 关键字来修饰成员变量。
2.使用public修饰getter和setter方法。
1.3.2 封装的步骤实现
-
private修饰成员变量
public class Student {
private String name;
private int age;
}
-
public修饰getter和setter方法
public class Student {
private String name;
private int age;
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
public void setAge(int a) {
if (a > 0 && a <200) {
age = a;
} else {
System.out.println("年龄非法!");
}
}
public int getAge() {
return age;
}
}
🔹 理论理解
封装是OOP三大特性之一(封装、继承、多态),通过访问控制隐藏数据细节,仅暴露必要接口,保护对象的完整性和安全性。
🔹 企业实战理解
-
字节跳动:所有成员变量必须
private,提供getter/setter,且setter需要增加参数合法性校验(防止脏数据)。 -
NVIDIA AI引擎:内部对象经常只有
getter无setter(只读属性),进一步保护系统核心状态不被篡改。
1.4 构造方法
1.4.1 构造方法的作用
在创建对象的时候,给成员变量进行初始化。
初始化即赋值的意思。
1.4.2 构造方法的格式
修饰符 类名(形参列表) {
// 构造体代码,执行代码
}
1.4.3 构造方法的应用
首先定义一个学生类,代码如下:
public class Student {
// 1.成员变量
public String name;
public int age;
// 2.构造方法
public Student() {
System.out.println("无参数构造方法被调用");
}
}
接下来通过调用构造方法得到两个学生对象。
public class CreateStu02 {
public static void main(String[] args) {
// 创建一个学生对象
// 类名 变量名称 = new 类名();
Student s1 = new Student();
// 使用对象访问成员变量,赋值
s1.name = "张三";
s1.age = 20 ;
// 使用对象访问成员变量 输出值
System.out.println(s1.name);
System.out.println(s1.age);
Student s2 = new Student();
// 使用对象访问成员变量 赋值
s2.name = "李四";
s2.age = 18 ;
System.out.println(s2.name);
System.out.println(s2.age);
}
}
🔹 理论理解
构造方法用于在对象创建时完成初始化。如果不显式声明构造方法,Java会自动提供一个默认的无参构造方法。
🔹 企业实战理解
-
Google:推荐使用Builder模式来代替多参数构造器(尤其是超过3个参数时),提高代码可读性。
-
OpenAI API封装:对象实例通常通过静态工厂方法代替
new直接调用,便于扩展和版本升级。
1.5 this关键字的作用
1.5.1 this关键字的作用
this代表所在类的当前对象的引用(地址值),即代表当前对象。
1.5.2 this关键字的应用
1.5.2.1 用于普通的gettter与setter方法
this出现在实例方法中,谁调用这个方法(哪个对象调用这个方法),this就代表谁(this就代表哪个对象)。
public class Student {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
if (age > 0 && age < 200) {
this.age = age;
} else {
System.out.println("年龄非法!");
}
}
public int getAge() {
return age;
}
}
1.5.2.2 用于构造方法中
this出现在构造方法中,代表构造方法正在初始化的那个对象。
public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}
🔹 理论理解
this代表当前对象自身,用于区分成员变量和局部变量同名冲突,以及在构造器链中调用其他构造方法。
🔹 企业实战理解
-
阿里Java开发手册:要求在setter方法中,所有赋值必须带this,提升可读性并减少维护出错风险。
-
Google内部编码规范:鼓励构造器中使用
this()调用其他构造方法,减少重复代码。 -
OpenAI GPT模型对象构建:初始化过程中大量使用
this精确指定对象内部状态,避免因传参混淆导致推理错误。

970

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



