|NO.Z.00037|——————————|BigDataEnd|——|Java&方法封装.V19|——|Java.v19|封装实现.v02|
一、封装的实现
### --- 封装的实现流程
~~~ ——> 私有化成员变量,使用private关键字修饰。
~~~ ——> 提供公有的get和set方法,并在方法体中进行合理值的判断。
~~~ ——> 在构造方法中调用set方法进行合理值的判断。
二、编程代码
### --- 编程代码:封装类
/*
编程实现Student类的封装 封装类
*/
public class Student {
// 1.私有化成员变量,使用private关键字修饰
// private关键字修饰表示私有的含义,也就是该成员变量只能在当前类的内部使用
private int id; // 用于描述学号的成员变量
private String name; // 用于描述姓名的成员变量
// 3.在公有的构造方法中调用set方法进行合理值的判断
public Student() {}
public Student(int id, String name) {
//this.id = id;
//this.name = name;
setId(id);
setName(name);
}
// 2.提供公有的get和set方法,并在方法体中进行合理值的判断
// 使用public关键字修饰表示公有的含义,也就是该方法可以在任意位置使用
public int getId() {
return id;
}
public void setId(int id) {
if(id > 0) {
this.id = id;
} else {
System.out.println("学号不合理哦!!!");
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 自定义成员方法实现特征的打印
// 什么修饰符都没有叫做默认的访问权限,级别介于private和public之间
public void show() {
//System.out.println("我是" + name + ",我的学号是" + id);
System.out.println("我是" + getName() + ",我的学号是" + getId());
}
}
三、编程代码:测试类
### --- 编程代码:测试类
/*
编程实现Student类的测试
*/
public class StudentTest {
public static void main(String[] args) {
// 1.声明Student类型的引用指向Student类型的对象
Student s1 = new Student();
// 2.对成员变量进行赋值并打印
//s1.id = -1001;
//s1.name = "张飞";
s1.setId(-1001);
s1.setName("张飞");
s1.show(); // 1001 张飞
System.out.println("----------------------------------------------------");
// 3.使用有参方式构造对象并打印特征
Student s2 = new Student(-1001, "张飞");
s2.show();
}
}
四、编译打印
C:\Users\Administrator\Desktop\project>javac StudentTest.java
C:\Users\Administrator\Desktop\project>java StudentTest
学号不合理哦!!!
我是张飞,我的学号是0
----------------------------------------------------
学号不合理哦!!!
我是张飞,我的学号是0
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv002-Java面向对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通