Java--封装

1、概念:尽可能隐藏对象的内部实现细节,控制对象的修改和访问权限。

      访问修饰符:private(可将属性修饰为私有,仅本类可见)

    在对象的外部,在给对象的属性赋值的时候,可能会存在非法数据的输入。

    为了避免这种情况,把变量封装为私有变量,这样的话外部就无法访问。

    如果想要访问,则需要通过访问公共方法的形式来完成赋值和取值的操作。

    两个公共方法:setxxxx() --这个方法是给变量赋值 使用方法参数实现赋值  可以在set方法中 通过逻辑判断来给变量赋值 如果是非法的 则可以给默认值

                         getxxxx() --这个方法是取变量的值 使用方法的返回值实现取值

    自动生成 set()、get()方法的快捷键Alt + Shift + S -->弹出的菜单中选择-->Generate Getters and Setters --> 勾选需要生成方法的变量 确认即可

   

package com.monv.fengzhuang;
/**
 * 学生类--测试封装
 * @author Administrator
 *
 */
public class student {
    
    String  name;//姓名
    String  sex;//性别
    private double  age;//年龄
    String  banji;//班级
    double  score;//成绩
    
    public void showinfo(){
        System.out.println("学生姓名:"+name+" 性别:"+sex+" 年龄:"+age +" 班级:"+banji + " 成绩:"+score);
    }
    //获取age的值
    public double getAge() {
        return age;
    }
    //给age赋值
    public void setAge(double age) {
        if(age > 0 && age <= 120){//age 的取值范围 1=120
            this.age = age;
        } else // 如果超出范围 则默认给18
        {
            this.age = 18;
        }
    }
}
package com.monv.fengzhuang;

public class TestStudent {
    public static void main(String[] args) {
        
        student monv = new student();
        monv.name = "魔女";
        monv.sex  = "女";
//        monv.age  = 1000;//年龄的取值范围应该是在 1-120之间
        monv.setAge(1000);//调用setAge方法 给age赋值 这里给1000 超出取值范围 输出默认值18
        monv.banji= "3-2";
        monv.score= 100;
        
        monv.showinfo();
    }
}

输出结果为:学生姓名:魔女 性别:女 年龄:18.0 班级:3-2 成绩:100.0

 

posted @ 2020-08-06 11:04  改Bug的小魔女  阅读(176)  评论(0编辑  收藏  举报