详解public、private等权限修饰符
1、public
-
意思是“公有的,公共的”,既可以修饰类,还可以修饰域和方法。
当一个类被public修饰时,该类可以被所有其他类访问。当被访问的公共类与访问类不在
同一个包的时候,需要通过import语句加载被访问的类。
-
程序必须被命名被public修饰的类的名字,程序不允许一个程序有两个以上的公共类
2、private
1. private修饰符用来修饰域或方法,添加了private说明是私有域或者私有方法。只能在他们所在额类中进行访问,任何类都不能访问其他类的私有域或者私有方法
2. private提供了类的最高保护级别。
3. 要想获得类中的私有域,只能通过setter和getter方法。如图:
4. 代码
package com.yyr.struct;
class Person{
//在class类中定义了3个私有域名字:名字,性别,年龄
private String name;
private int sex;
private int age;
public Person(String name,String sex,int age){//Person类的构造方法,为了初始化对域进行初始化
this.age=age;
this.name=name;
setSex(sex);
}//set方法}
public void setSex(String sex) {
if(sex.equals("男"))
this.sex=0;
else
this.sex=1;
}
public String getSex() {
if(sex==0)
return "男";
else
return "女";}
public void setName(String name)
{ this.name = name ; }
public void setAge(int age)
{ this.age = age; }
public String getName()
{ return name;}
public int getAge()
{return age; }
}
public class PeronApp {
public static void main(String[] args) {
Person p=new Person("liux","男",18);
//System.out.println("姓名为:"+p.name);
//私有变量无法被调用,只能通过set方法修改和get方法获得
//stacic的定义可以直接用类调用域,
System.out.println("姓名为:"+p.getName()+ p.getAge());
p.setAge(20);
System.out.println("姓名为:"+p.getName()+ p.getAge());
}
}