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); } }