private_default_protected

private:同一类可见,变量和方法
default:同一包可见,变量和方法,类,接口
protected:同一包内的类和所有子类(包括不同包的子类)可见,变量和方法
public:所有可见,变量和方法,类和接口

 

package Encapsulation1;

public class Person {
       //测试private
       private String name;//变量不能在子类中使用  private String name;
       private void story() {
              System.out.println("person is tell story");
          }
       
     //测试default
       String sex;
       void drink() {
           System.out.println("person is drinking");
       }
       
       //测试protected
       protected double weight;
       protected void work() {
           System.out.println("person is working");
       }
       
       
       
       
       public int age;
       
          
       
       
       public void learn() {
              System.out.println("person is learning");
          }
          
        public static void main(String[] args) {
            System.out.println("person class");
            Person p=new Person();
            //测试private,变量和方法可以在当前类中调用
            p.name="personQiao";
            p.story();
            
            //测试default,变量和方法可以在当前类中调用
            p.sex="male";
            p.drink();
            
            //测试protected,变量和方法可以在当前类中调用
            p.weight=98.7;
            p.work();
            
            
            p.age=30;
            p.learn();
            
            
            //
        }
}
package Encapsulation1;

public class Student extends Person {

    public int grade;
          
        public void book() {
              System.out.println(" student is watching book");
          }
          
        public static void main(String[] args) {
            System.out.println("person class");
            Student s=new Student();
            //测试private,变量和方法不能在同一包子类中调用
            //s.name="qiao"; 
            //s.story(); 
            
            //测试default,变量和方法可以在同一包子类中调用
            s.sex="male";
            s.drink();
            
            //测试protected,变量和方法可以在同一包子类中调用
            s.weight=100.5;
            s.work();
            
            
            
            //s.age=20;
            //s.learn();
            
        }
}
package Encapsulation2;
import Encapsulation1.Person;

public class Teacher extends Person {
   public static void main(String[] args) {
       System.out.println("teacher class");
       Teacher t=new Teacher();
       
       //private 在不同包不可以调用
       //t.name="qiao"; 
          //t.story(); 
       
      //default在不同包中不可以调用
          //t.sex="male";
          //t.drink();
       
          //protected在不同包中子类可以调用
          t.weight=100.5;
          t.work();          
        
          t.age=20;
          t.learn();

       
   }
}
package Encapsulation1;

import Encapsulation1.Person;

public class Aniaml {
      private String name;
      public String habit;
      
      public void eat() {
          System.out.println(name+" is eating");
      }
      
      
      public static void main(String[] args) {
          System.out.println("animal class");
          Person p=new Person();
          //测试private,在同一包可以调用
          //p.name="personQiao";
          //p.story();
          
          //测试default,在同一包可以调用
          p.sex="male";
          p.drink();
            
          //测试protected,在同一包可以调用
          p.weight=20.7;
          p.work();
          
          
          
          //p.age=130;
          //p.learn();
      }
      
      
}
package Encapsulation2;
import Encapsulation1.Person;
public class Car {
   public static void main(String[] args) {
        System.out.println("person class");
           Person p=new Person();
           //测试private,变量和方法可以在不同包不通过类不可以
           //p.name="personQiao";
           //p.story();
           
           //测试default,变量和方法可以在在不同包不通过类不可以
           //p.sex="male";
           //p.drink();
           
           //测试protected,变量和方法可以在在不同包不通过类不可以
           //p.weight=98.7;
           //p.work();
           
           
           p.age=30;
           p.learn();
           
   }
}

猜你喜欢

转载自www.cnblogs.com/hapyygril/p/12356414.html
今日推荐