PTA——JAVA(類和對象一)知識點及錯題整理(private\this的使用)

1.私有屬性
private

class Student{
private String sex;
private String name;
private int age;
}

2.this的使用
注意
this可以出現在構造方法和實例方法中,不可以出現在類方法中

所以在類中的static void f(){}這種類方法出現this是不對的
但是又會出現成員變量和局部變量名重複的情況,

以下爲錯誤示例和解決示例

class People{
    static int x;
    static void set(int x){
    this.x = x;//意思想讓參數x的值賦給成員變量x
               //因爲this不能出現在類方法中,所以錯誤!
    }

解決方案

class People{
  static int x;
  static void set(int x){
  People.x = x;
  }

//既然x是People共享的,這樣就可以解決了
//但是需要注意的是,既然是共享的變量,則一改全改,劃重點!!

①在構造方法中使用this.成員變量(當在方法中成員變量和局部變量重名時)
當在構造方法中使用this時,它指的是正在創建的這個對象。
情況1—→可以指代成員變量

class Student{
    private String sex;   //1
    private String name;  //2
    private int age;      //3

Student (String sex,String name,int age){
     this.sex = sex;   //this.sex指的是1處的成員變量sex
     this.name = name; //this.name指的是2處的成員變量name
     this.age = age;   //this.age指的是3處的成員變量age
}                      //意思是成員變量sex\name\age
                       //被局部變量參數sex\name\age修改。
}

情況2—→可以指代創建的對象

   public class People{
      String name;
      People(String s){
         name = s;
         this.words();  //1
   }
      void words(){
         String word = new String ("Be confident!");
         System.out.println(name+" "
         +"said to him self"+" "+"'"+word+"'");
         }
      public static void main(String args[]){
         People Mustang = new People("Mustang");
         }
   }
         //創建對象“Mustang”的時候
         //1處構造方法中的this指代的就是對象 Mustang
         //最終輸出Mustang said to him self 'Be confident!'

②在構造方法或實例對象中使用this(參數)來調用其他構造方法

實例方法一定是對象調用,當一個對象調用一個實例方法時,實例方法
中的this指的就是當前正在調用的對象.

 public static void main(String args[]){
     People Mustang = new People("Mustang");
         }
     public class People{
      String name;
      People(String s){
         name = s;
         this();      //調用1處無參的構造方法
   }
      People(){   //1
         String word = new String ("Be confident!");
         System.out.println(name+" "
         +"said to him self"+" "+"'"+word+"'");
         }
   }

注意,在調用的有參數的構造方法時,應在this後面的括號內帶上具體的類型值,而不僅僅是類型而已


class Test {
    public Test(int x){  //1
    	System.out.println("I'm the best");
    }
 public Test(){
     this(1);//調用1處的構造方法,不僅限於1.只要是整數類型的數值都可以。
     System.out.println("I'm the best");
    }
    }

3.類可以有內部類,而方法不可以嵌套

4.一個對象可以有多個引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章