|NO.Z.00037|——————————|BigDataEnd|——|Java&方法封装.V19|——|Java.v19|封装实现.v02|

一、封装的实现
### --- 封装的实现流程

~~~     ——>        私有化成员变量,使用private关键字修饰。
~~~     ——>        提供公有的getset方法,并在方法体中进行合理值的判断。
~~~     ——>        在构造方法中调用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

 

 

posted on   yanqi_vip  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示