关键词搜索

源码搜索 ×
×

(Java)封装性

发布2019-10-25浏览1062次

详情内容

一、封装性

所谓的封装性就是指对外部不可见

为属性封装:private 属性类型 属性名称;
为方法封装:private 方法返回值 方法名称(参数列表){}

    为程序加上封装性

    class Person{
        private String name;
        private int age;
        public void tell(){
            System.out.println("name: " + name + "\t"+ "age: " + age);
        }
    }
    public class Test{
        public static void main(String[] args) {
            Person per = new Person();
            per.name = "Java";
            per.age = 30;
            per.tell();
    
        }
    }
    
      3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    结果:
    在这里插入图片描述
    结果发现由于定义属性时使用了 private 关键字定义,,加入关键字之后发现程序无法编译,提示“属性(name,age)为私有的”,所以不能由对象直接进行访问。

    这样一来该如何访问此属性呢?

    为了解决属性必须封装且又必须访问的矛盾,在 Java 开发中对于私有属性的访问,由以下明确定义:“只要是被封装的属性,必须通过 setter 和 getter 方法设置和取得”

    class Person{
        private String name;
        private int age;
        public void tell(){
            System.out.println("name: " + name + "\t"+ "age: " + age);
        }
        public String getName(){ // 取得姓名
            return name;
        }
    
        public void setName(String name) { //设置姓名
            this.name = name; // this.方法名称 表示强调是本类中的方法
        }
    
        public int getAge() {   //取得年龄
            return age;
        }
    
        public void setAge(int age) {   //设置年龄
            this.age = age;
        }
    }
    public class Test{
        public static void main(String[] args) {
            Person per = new Person();
            per.setName("Java");
            per.setAge(30);
            per.tell();
        }
    }
    
      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

    编写程序采用 this. 方法的形式情调是本类中的方法,比较标准,查错也比较方便

    二、注意

    开发过程中,类中的全部属性都必须封装,封装之后的属性必须通过 setter 和 getter 进行访问

    private 声明的属性或方法只能在其类的内部被调用,而不能在类的外部被调用

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载