权限修饰符 可以修饰 类的的三大要素 属性 方法 构造器。 也可以修饰类本身
private 只能在本类中调用
default 可以在本类 和 同一个包中调用
protected 可以在本类 和 同一个包 及 子类中调用
pulbic 可以在任何地方调用。
package day08;
public class Person {
private String name;
int age;
protected int id;
public String desc;
}
同一个包下的测试类
package day08;
public class TestPerson {
public static void main(String[] args) {
Person p = new Person();
p.age=1;
p.desc="描述";
p.id=100001;
// 同一个包下 无法调用 私有的属性 无法调用私有的属性;
// p.name="john";
}
}
不同包下的 子类 及 不同包下的 普通类
package day08.day02;
import day08.Person;
public class Student {
public static void main(String[] args) {
Person p = new Person();
// 只能调用公共的属性和 方法
p.desc="dfg";
}
}
class Teacher extends Person {
public static void main(String[] args) {
Teacher p = new Teacher();
p.id=123;
p.desc="sd";
}
}
构造器函数中 this.(); 只能在首行
package day08_01;
public class TestPerson {
public static void main(String[] args) {
Person p =new Person();
System.out.println(p.getAge());
Person p1 =new Person();
p1.setAge(34);
System.out.println(p1.compare(p));
}
}
class Person{
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;
}
public void eat(){
System.out.println("chifan");
}
public void sleep(){
System.out.println("shuijiao");
}
public Person() {
this.name = "qwe";
this.age = 2;
}
public Person(int age){
this();//构造器中 只能在首行
this.age=age;
}
public int compare(Person p){
if(this.age >p.age)
return 1;
else if(this.age<p.age)
return -1;
else
return 0;
}
}