您的位置:首页 > 编程语言 > Java开发

Java基础教程24-public/protected/private/this介绍

2017-06-14 13:07 225 查看
        本文介绍Java中权限访问控制的修饰符,你注意到没有,前面我们的例子,不管是main方法还是实例方法,都是public static 开头。学习了今天这篇文章,你就明白为什么是public开头。Java中权限访问控制的修饰符有四种情况:public private protected 和默认为空。

1. 先来看看四种情况的访问权限



       这里提一下任何地方,有些资料,你可以看到的是全世界。如何去理解任何地方这个权限访问呢,例如你到网上下载一个Selenium源码文件,然后关联到你的项目上,在你的项目代码中调用了或者引用了Selenium里面的接口或者方法,这个就可以理解任何地方或者全世界都可以访问的权限。由于我们还没有介绍Java中的继承,所以这个子类权限,我们这里也不做演示,我们来来看看同一个包下不同类文件的访问情况。public任何地方都可以访问,这里也不举例演示。

2. 不带修饰符的情况

新建一个Student.java的文件,代码如下:

package Lessons;

public class Student {

String name;
int age;

}
在MyClass.java中测试下不带修饰符的变量的访问。
package Lessons;

public class MyClass {

public static void main(String[] args) {

Student Anthony = new Student();
Anthony.name = "Anthony";
Anthony.age = 18;
System.out.println(Anthony.name + " " + Anthony.age);
}

}
验证通过,访问没问题,可以在类内部和包里访问不带修饰符的变量。
3. 看看private修饰符

Student.java代码修改如下:

package Lessons;

public class Student {

private String name;
private int age;

}
这个时候,你回到MyClass.java会发现报错。



       那么如何才能访问到private修饰的变量呢,还记得前面介绍过的变量中的set()和get()方法,我们可以利用实例去访问实例访问来设置和获取private修饰的类变量。

我们把Student.java调整如下:

package Lessons;

public class Student {

private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}
       这里提下this关键字,在Java中,this关键字主要是用来调用该类的属性,例如类成员变量,该类的实例方法,该类的构造方法。你可以这样去理解,this就相当于指的是当前这个类本身,等同于这个类的类名。this.name = name,很多人看到这个会有疑问,这个地方有两个name,如何区分呢。等号左边的name是一个类成员变量,等号右边的name是实例方法中的局部变量,所以this.name
= name的意思就是将局部变量的值传递给类成员变量。

MyClass.java代码如下

package Lessons;

public class MyClass {

public static void main(String[] args) {

Student Anthony = new Student();

Anthony.setName("Anthony");
Anthony.setAge(18);

System.out.println(Anthony.getName());
System.out.println(Anthony.getAge());
}

}
4. 看看protected修饰符
Student.java代码调整如下

package Lessons;

public class Student {

protected String name;
protected int age;

}
MyClass.java代码如下
package Lessons;

public class MyClass {

public static void main(String[] args) {

Student Anthony = new Student();

Anthony.name = "Anthony";
Anthony.age = 18;

System.out.println(Anthony.name);
System.out.println(Anthony.age);
}

}
关于权限访问修饰符的基本使用就介绍到这里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐