• 封装


    封装的概念:

    将类的某些信息隐藏在类内部,

    不允许外部程序直接访问,

    而是通过该类提供的方法来实现隐藏信息的操作和访问

    封装的原则:

    1.将属性私有化,访问修饰符设置为private,属性只能在本类中使用

    2.在类中给属性提供相对于get/set的方法,给外部的程序访问属性

    3.在属性的相对应的方法中,提供逻辑的判断

    4.在封装中如果属性设置业务逻辑的判断,在相对应的构造方法中需要调用相对应的set方法

    封装的好处: 

    1.隐藏类的实现细节

    2.只能通过规定方法访问数据

    3.方便加入控制语句

    4.方便修改实现

    封装的步骤:

    1.修改属性的可见性

    2.创建get,set方法

    3.在get,set方法中加入属性

    4.实现get,set方法

    代码参考:

    第一种方法:

    第一个类:

    public class Student {
    int sno;//学号
    String name;//姓名
    int age;//年龄
    char sex;//性别

    public Student (){}
    public day0220yi(int sno,String name,int age,char sex){
    this.sno=sno;
    this.name=name;
    this.age=age;
    this.sex=sex;
    }
    //提供获取属性值的方法,命名规则:getSno(),属性名首字母大写
    public int getSno(){
    return sno;
    }
    //提供设置属性值的方法,命名规则:setSno(int sno),
    // 属性名首字母大写,方法中传进来的参数值作为属性值
    public void setSno(int sno){
    this.sno=sno;
    }
    public String getName(){
    return name;
    }
    public void setName(String name){
    this.name=name;
    }
    public int getAge(){
    return age;
    }
    public void setAge(int age){
    this.age=age;
    }
    public char getSex(){
    return sex;
    }
    public void setSex(char sex){
    this.sex=sex;
    }
    public void show(){
    System.out.println("学号:"+sno+" 姓名:"+name+" 年龄:"+age+" 性别:"+sex);
    }
    }

    第二个实现类:

    public class TestStudent {
    public static void main(String [] args){
    Student stu=new Student ();
    stu.setSno(20110);
    stu.setName("张三");
    stu.setAge(29);
    stu.setSex('男');
    stu.show();
    }
    }

    第二种方法:

    第一个类:

    public class Student2{
    String name;
    int health;
    int love;
    String strain;

    public Student2(){}

    public Student2(String name,int health,int love,String strain){
    this.name=name;
    this.setHealth(health);
    this.setLove(love);
    this.strain=strain; 
    }
    public String getName(){
    return name;
    }
    public void setName(String name){
    this.name=name;
    }
    public int getHealth(){
    return health;
    }
    public void setHealth(int health){
    //对健康值做一个判断,只能0~100之间
    if(health<0||health>100){
    this.health=100;
    System.out.println("输入健康值不合格,设置为默认100!");
    }else{
    this.health=health;
    }
    }
    public int getLove(){
    return love;
    }
    public void setLove(int love){
    //判断亲密度的合法性
    if(love>=0&&love<=100){
    this.love=love;
    }else{
    System.out.println("输入的亲密度不合法,请重新输入");
    }
    }
    public String getStrain(){
    return strain;
    }
    public void setStrain(String strain){
    this.strain=strain;
    }

    public void show(){
    System.out.println("昵称:"+name+" 健康值:"+health+" 亲密度:"+love+" 品种:"+strain);
    }
    }

    第二个实现类:

    public class TestStudent2{
    public static void main(String[] args) {
    // Dog dog=new Dog();
    // dog.setName("旺财");
    // dog.setHealth(1000);
    // dog.setLove(-100);
    // dog.setType("中华田园犬");
    Student2dog=new Student2("旺财",1000,100,"中华田园犬");
    dog.show();
    }
    }

  • 相关阅读:
    Kali Linux软件更新日报20190622
    Maltego更新到4.2.4.12374
    Kali Linux又增加一个顶级域名kali.download
    Nessus提示API Disabled错误
    数据包分析中Drop和iDrop的区别
    快速识别Hash加密方式hashid
    识别哈希算法类型hash-identifier
    vue实现前端导出excel表格
    vue自动化单元测试
    Mock制作假数据
  • 原文地址:https://www.cnblogs.com/yinhua7896/p/6986124.html
Copyright © 2020-2023  润新知