Javaのクラス、オブジェクト、パッケージング、継承、およびマルチステート(詳細)

22286 ワード

1.クラスとオブジェクト:
(1)クラスは抽象的なデータ型であり、ある種類の事務の全体的な説明または定義であるが、ある具体的な事務を代表するものではない.例えば、人(名前、年齢、性別などの特徴がある)、対象は抽象的な概念の具体的な事例である.例えば、趙雲は人(クラス)の具体的な例であり、趙雲家の旺財は犬である(クラス)の特定のインスタンスです.オブジェクトは抽象的な概念ではなく、表示される特定のインスタンスです.(2)クラスとオブジェクトの作成:
//         Person 
public class Person(){
	//             
	String name;
	int age;
	//  
	public void study(){
		System.out.println(this.name+"    ");
	}
}

クラスのインスタンス化
public class Application(){
	public static void main(String[] args){
		Person TW=new Person();//  new    ,  TW      Person     
		TW.name="  ";//            null,     0
		TW.age=21;
		//            
		System.out.println(TW.name);
		System.out.println(TW.age);
	}
}

(3)コンストラクタ:クラス内のコンストラクタはコンストラクタとも呼ばれ、オブジェクトの作成時に呼び出さなければならない.デフォルトの初期化とクラス内のコンストラクタの呼び出しを行う.メソッド名はクラス名と同じでなければならない.戻り値タイプはなく、voidも含めて書くことができない.
public class Person(){
	String name;
	int age;
	//         ,            
	public Person(){}
	//            ,   new               ,      
	public Person(String name,int age){
		this.name=name;
		this.age=age;
	}
}
public class Application(){
	public static void main(String[] args){
		Person TW=new Person("  "21);//   
		System.out.println(TW.name);
		System.out.println(TW.age);
	}
}
	

2.パッケージ
通常、オブジェクト内のデータの実際の表示に直接アクセスすることは禁止され、操作インタフェースを介してアクセスする必要があります.このプロセスはパッケージと呼ばれ、パッケージはデータのセキュリティを高めることができます.
public class person {
	//         ,             ,         get set  
    private String name;
    private int age;
    private int id;
	/*           get set  ,get      ,set       
	   vscode    ,    get set        ,         ,
	    Generate Getters and Setters,     get set           */
	public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
    //              ,           
    	if(age>120||age<0){
    		this.age = 2;
    	}else{
    		this.age = age;
    	}
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}
public class Application(){
	public static void main(String[] args){
		Person TW=new Person();
		TW.setName("  ");//     set  
		System.out.println(TW.getName());//     get  
		TW.setAge(999);//               ,          2
		System.out.println(TW.getAge());
	}
}

3.継承
継承は実は生活の中でよく見られる例えば息子が親を継承する特徴で、また継承はjavaの中で単一の継承だけで多く継承されず、継承はクラスとクラスの関係である.
//  
public class Person(){
	public String name="TWQ";//      private            ,           
	public int age=23;
	public void say(){
		System.out.println("          ");
 	}
}
//  
public class student extends Person{
	
}
public class Application(){
	public static void main(String[] args){
		student TW=new student();
		//student     age say  ,                    
		System.out.println(TW.name);
		System.out.println(TW.age);
		Tw.say();//        say       
	}
}

4.マルチステート
すなわち、同じ方法では、送信対象に応じて、複数の異なる動作方式を採用することができる.1つのオブジェクトの実際のタイプは決定されますが、指すことができるオブジェクトの参照のタイプはたくさんあります.また,マルチステートはメソッドのマルチステートであり,属性にはマルチステートはない.
public class Person(){
	public void TWQ(){
		System.out.println("son");
	}
}
public class student extends Person{
	//        main      ,            
	public void TWQ(){
		System.out.println("eat");
	}
}
public class Application(){
	public static void main(String[] args){
		//           ,               
		student t1=new student();
		Person t2=new studnet();//           
		Object t3=new student();//Object      
		t2.TWQ();//          ,  t2            ,  t1        ,               
		//     student         ,       ,       
		t1.TWQ();//                    ,     eat
		t2.TWQ();
	}
}