面向对象基础2-关键字


前言

一、private关键字

private属于私有访问权限,用于修饰类的属性和方法。

为什么要用private关键字呢?

原因:通过对象直接访问成员变量的方式会有数据安全隐患。所以使用private关键字进行修饰。

private关键字是什么? 是一个权限修饰符 可以修饰成员变量(成员变量和成员方法) 作用是保护成员不被别的类使用,被private修饰的成员只能在本类中才能访问

那么对于private修饰的成员变量,如果想要被其他类使用的话,会提供相应的操作:

    提供“get变量名”方法,用于获取成员变量的值,方法用public修饰 提供“get变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

例:

public class Test{
    public static void main(String[] args){
        //成员变量
        String name;
        private int age;    //私有成员变量
        
        提供get/set方法
        public void setAge(int a){
            age = a;
        }
        
        public int getAge(){
            return age;
        }
    }
}

二、private关键字的使用

首先写一个标准的学生类:

public class Student{
    public static void main(String[] args){
        //成员变量
        private String name;
        private int age;    //私有成员变量

        public void setName(String n){
            name = n;
        }
        
        public String getName(){
            return name;
        }
        
        提供get/set方法
        public void setAge(int a){
            age = a;
        }
        
        public int getAge(){
            return age;
        }
        
        public void show(){
            System.out.println(name + "," age);
        }
    }
}

在写一个学生的实现类:

public class StudentDome(){
    public static void main(String[] args){
        //创建对象
        Student s = new Student();

        //使用set方法给成员变量赋值
        s.setName("张三");
        s.setAge(20);
        
        //输出信息
        s.show();

        使用get方法获取成员变量的值
        s.getName();
        s.getAge();
    }
}

 三、this关键字

为什么用this呢?解决局部变量隐藏成员变量的问题。

this代表所在类的对象的引用。

1、this修饰的变量用于指代成员变量 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

这里有一个学生类:

public class Student{
    public static void main(String[] args){
        //成员变量
        private String name;
        private int age;    //私有成员变量

        public void setName(String name){
            this.name = name;
        }
        
        public String getName(){
            return name;
        }
        
        提供get/set方法
        public void setAge(int age){
            this.age = age;
        }
        
        public int getAge(){
            return age;
        }
        
        public void show(){
            System.out.println(name + "," age);
        }
    }
}

里面的name和age都是用this关键字进行了修饰,他指代的就是成员变量,而等号后面的name没有用this修饰,他就是局部变量。

this不能使用在static方法中。

四、public关键字

public属于公共访问权限。如果一个类中的成员,使用了public访问权限,则该成员可以在所有类中被访问,不管是否在同一包中。

五、protected

属于受保护的访问权限。一个类中的成员使用了protected访问权限,则只能被本包及不同包的子类访问。

六、default

如果一个类中的属性或方法没有任何的访问权限声明,则该属性或方法就是默认的访问权限默认访问权限可以被本包中的其他类访问,但是不能被其他包的类访问。

下面用一段代码演示四种访问权限修饰符的用法:


经验分享 程序员 微信小程序 职场和发展