Java——封装(面向对象)

一、封装

思想:隐藏实现细节,仅对外暴露公共的访问方式

二、private关键字

(一)介绍

1.是一个权限修饰符,可以修饰成员(成员变量和成员方法)

2.被private修饰的成员只能在本类中才能访问

(二)针对private修饰的成员变量,如果需要被其他类使用,操作如下

1.提供get变量名()” 方法,用于获取成员变量的值,方法用public修饰

2.提供“set变量名(变量类型 变量名)”方法,用于设置成员变量的值,方法用public修饰

(三)举例

//定义一个类
public class TestPhone {
    String name;
//    将age变量变为私有属性
    private int age;
//    使用set变量名()来对私有属性修改
    public void setAge(int a) {
        if (a >=0 && a<=120) {
            age=a;
        }else {
            System.out.println("您的年龄不符合。");
        }
    }
//    使用get变量名()来对私有属性获得
    public int getAge() {
        return age;
    }
//    写一个方法
    public void sprint() {
        System.out.println(name+"的年龄是"+age);
    }
}
public class Text1 {
    public static void main(String[] args) {
        TestPhone t = new TestPhone();
        t.name="张三";
        t.setAge(110);
        System.out.println(t.getAge());
        t.sprint();
    }
}
//结果
//110
//张三的年龄是110

三、this关键字

(一)介绍

1.this关键字代表所在类的对象引用(引用-地址

2.由于java遵循“就近原则”,所以才使用this关键字来确定成员变量

public class TestPhone {
//    将age变量变为私有属性
    private int age;
//    使用sert方法更改age变量的值
//    此时因为就近原则,
//所以在set方法中等于号左边和右边的“age”均代表局部变量age
//而并非是类中的成员变量age(所以成员变量age的值为初始值)!
    public void setAge(int age) {
        age=age;    
    }
//    使用get方法获得age变量的值
    public int getAge() {
        return age;
    }
}
public class Text1 {
    public static void main(String[] args) {
        TestPhone t = new TestPhone();
        t.setAge(10);
        System.out.println(t.getAge());
    }
}
//结果
//0(初始值)

3.作用:可以调用本类的成员(变量,方法),解决局部变量和成员变量的重名问题 

4.如何区别是否调用的是成员变量,就看有没有同名的局部变量,如果有——并且没在调用时添加“this”关键字,则调用的是局部变量没有——则调用的是成员变量

(二)举例

public class TestPhone {
//    将name和age成员变量变为私有属性
    private String name;
    private int age;
//  使用this关键字,将其中一个age变量确定为成员变量,更改成员变量的值
    public void setAge(int age) {
        if (age >=0 && age<=120) {
            this.age=age;
        }else {
            System.out.println("您的年龄不符合。");
        }
    }

    public void setName(String name) {
        this.name = name;
    }
//    使用get()方法获得成员变量的值
    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }
    public void sprint() {
        System.out.println(name+"的年龄是"+age);
    }
}
public class Text1 {
    public static void main(String[] args) {
        TestPhone t = new TestPhone();
        t.setName("张三");
        t.setAge(10);
        System.out.println(t.getName());
        System.out.println(t.getAge());
        t.sprint();
    }
}
//结果
//张三
//10
//张三的年龄是10

你可能感兴趣的:(java,开发语言)