美文网首页
8-成员属性封装

8-成员属性封装

作者: c88bc9f9d088 | 来源:发表于2020-10-18 09:24 被阅读0次

    在类之中的组成就是属性与方法,一般而言方法都是对外提供服务的,所以是不会进行封装处理的,而对于属性由于其需要较高的安全性,所以往往需要对其进行保护,这个时候就需要采用封装性对属性进行保护。
    在默认的情况下,对于类中的属性是可以通过其它类利用对象进行调用的。

范例:属性不封装情况下的问题

class Person {
    String name;
    int age;
    public void tell(){
        System.out.println("姓名:"+name+"、年龄:"+age);
    }
}
public class JavaDemo {
    public static void main(String [] args){
        Person per = new Person();
        per.name = "张三";
        per.age = -18;
        per.tell();
    }
}

    此时在person类中提供的name与age属性并没有进行封装处理,这样外部就可以直接进行调用了,但是有可能设置的数据是错误的数据。如果想解决这样的问题,就可以利用private关键字对属性进行封装处理。

范例:对属性进行封装

class Person {
    private String name;
    private int age;
    public void tell(){
        System.out.println("姓名:"+name+"、年龄:"+age);
    }
}

    而属性一旦封装之后外部将不能够直接访问,即:对外部不可见,但是对类的内部是可见的,那么如果要想外部程序可以访问封装的属性,则在Java开发标准中提供有如下要求:

  • 【setter、getter】设置或取得属性可以使用setXxx()、getXxx()方法,以:private String name为例:
     设置属性方法:public void setName(String n);
     获取属性方法:public String getName()。

范例:实现封装

class Person {  //定义一个类
    private String name;   //人员的姓名
    private int age;       //人的年龄
    public void tell(){
        System.out.println("姓名:"+name+"、年龄:"+age);
    }

    public void setName(String n){
        name = n;
    }
    public void setAge(int a){
        if(a > 0){
            age = a;
        }
    }
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
}
public class JavaDemo {   //主类
    public static void main(String [] args){
        Person per = new Person();   //声明并实例化对象
        per.setName("张三");   // 在类外部修改属性
        per.setAge(-18);      //  在类外部修改属性
        per.tell();           //  进行方法的调用
    }
}

    在以后进行任何类定义的时候一定要记住,类中的所有属性都必须使用private封装(98%),并且属性如果要进行访问必须要提供有setter、getter方法。

相关文章

  • 8-成员属性封装

        在类之中的组成就是属性与方法,一般而言方法都是对外提供服务的,所以是不会进行封装处理的,而对于属性由于其需...

  • JAVA基础——面向对象三大特性:封装、继承、多态

    JAVA基础——面向对象三大特性:封装、继承、多态 封装 封装就是使用特殊的语法,对成员属性和成员方法进行包装,达...

  • oop

    面向对象特点:封装、继承、多态 类声明一个类:[修饰符]class 类名{ [成员属性]//也叫成员变量 [成员方...

  • 深入分析类与对象

    成员属性封装 在类之中的组成就是属性与方法,一般而言方法都是对外提供服务的,所以是不会进行封装处理的,而对于属性由...

  • 深入分析类与对象

    成员属性封装 在类之中的组成就是属性与方法,一般而言方法都是对外提供服务的,所以是不会进行封装处理的,而对于属性由...

  • OC @property

    @property(属性) 属性是对成员变量setter和getter的封装。 特性关键字 1. 原子性 atom...

  • JS对象,原型

    面向对象 是一种思维方式三大特点:继承,多态,封装几个概念: 类,对象,属性,方法,成员,类成员,实例成员,静态类...

  • 封装、继承、多态的总结

    封装 封装的意义: 封装的意义在于保护或者防止代码(数据)被我们无意中破坏。 保护成员属性,不让类以外的程序直接访...

  • Java面向对象:类与对象

    一、类 类是封装对象的属性和行为的载体,在Java语言中对象的属性以成员变量的形式存在,而对象的方法以成员方法的形...

  • 如何作死

    作死第一式 修改库封装的成员属性或成员方法 (带有下划线标记的方法或属性)结果>或早或晚--一定会出现各种各样神奇...

网友评论

      本文标题:8-成员属性封装

      本文链接:https://www.haomeiwen.com/subject/xgiqmktx.html