面向對象——this關鍵字


this關鍵字

作用:區分成員變量和局部變量同名的問題

方法中的局部變量和成員變量如果同名,在方法中打印該變量會遵循就近原則,不會去理會成員變量,如果在該變量前面加上this.的話,就會指向成員變量,this的作用就是哪個對象調用我就指向哪個對象。

面向對象的案例:判斷兩人是否爲同齡人

l  描述人的類

package cn.itcast.this關鍵字;
/*
 * 定義人的類,描述年齡即可
 */
public class Person {
   //定義年齡
   private int age;
   //設置值,setXxx()方法
   public void setAge(int age){
      this.age = age;
   }
   //獲取值,getXxx()方法
   public int getAge(){
      return age;
   }
   /*
    * 定義方法,對年齡進行比較並返回
    * 方法名compareAge()
    * 返回值:相同爲true,不同爲false,boolean
    * 參數列表:Person變量
    */
   public boolean compareAge(Person p){
      return this.age == p.age;
   }
}


l  測試類

package cn.itcast.this關鍵字;
/*
 * 測試類
 * 創建Person類的對象
 * 對象名.調用成員變量方法並賦值
 * 對象名.調用方法
 */
public class PersonTest {
   public static void main(String[] args) {
      //創建兩個人的對象
      Person p1 = new Person();
      Person p2 = new Person();
      //通過setXxx方法對對象賦值
      p1.setAge(20);
      p2.setAge(20);
      //通過getXxx方法獲取打印值
      System.out.println(p1.getAge());
      System.out.println(p2.getAge());
      //調用方法進行比較值
      System.out.println(p1.compareAge(p2));
   }
 
}


面向對象的案例:隨機點名器

l  學生類

package cn.itcast.random隨機點名器;
 
/*
 * 定義一個Student學生類
 * 描述出姓名和年齡,私有化
 * 對外提供訪問方式
 */
public class Student {
   //定義學生姓名
   private String name;
   //定義學生年齡
   private int age;
   //setXxx和getXxx
   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;
   }
}


l  測試類

package cn.itcast.random隨機點名器;
 
import java.util.ArrayList;
import java.util.Random;
 
/*
 * 測試類
 * 分析:1、定義一個Student學生類,描述學生的姓名和年齡
 *    2、在主方法中需要定義一個集合去存儲學生的信息,實現隨機點名器的功能
 *    3、定義方法,將學生的姓名和年齡進行設置,並存儲到集合中
 *    4、定義方法,遍歷集合,並獲取打印出集合中的信息
 *    5、定義方法,實現隨機點名的效果
 */
public class StudentTest {
   public static void main(String[] args) {
      //定義一個ArrayList集合存儲學生信息
      ArrayList<Student> array = new ArrayList<Student>();
      //調用addStudent方法,存儲學生的信息
      addStudent(array);
      //調用遍歷集合的方法
      printStudent(array);
      //調用隨機點名的方法
      randomStudent(array);
   }
   /*
    * 定義方法,實現隨機點名的效果
    * 返回值:void
    * 參數列表:集合
    */
   public static void randomStudent(ArrayList<Student> array){
      Random r = new Random();
      int index = r.nextInt(array.size());
      Student s = array.get(index);
      System.out.println(s.getName());
   }
   /*
    * 定義方法,遍歷集合,並獲取打印出集合中的信息
    * 返回值:void
    * 參數列表:集合
    */
   public static void printStudent(ArrayList<Student> array){
      //遍歷集合
      for(int i = 0;i < array.size();i++){
         Student s = array.get(i);
         System.out.println("姓名:"+s.getName()+"\t"+"年齡:"+s.getAge());
      }
   }
   /*
    * 定義方法,將學生的姓名和年齡進行設置,並存儲到集合中
    * 返回值:void 
    * 參數列表:集合
    */
   public static void addStudent(ArrayList<Student> array){
      //創建Student對象,對其設置年齡和姓名
      Student s = new Student();
      s.setAge(20);
      s.setName("張三");
      
      Student s1 = new Student();
      s1.setAge(21);
      s1.setName("李四");
      
      Student s2 = new Student();
      s2.setAge(23);
      s2.setName("王五");
      
      Student s3 = new Student();
      s3.setAge(22);
      s3.setName("胡椒");
      //將信息存儲到集合中
      array.add(s);
      array.add(s1);
      array.add(s2);
      array.add(s3);
   }
}


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