面向对象——this关键字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象——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); } }
以上是关于面向对象——this关键字的主要内容,如果未能解决你的问题,请参考以下文章