Java中get,set,this关键字如何使用 | 您所在的位置:网站首页 › java的get和set方法用法 › Java中get,set,this关键字如何使用 |
在写Java程序的过程中,有的时候为了避免对数据域的直接修改,应该使用private修饰符将数据域声明为私有的,那么这就称为数据域封装。我们知道,在定义私有数据域的类外的对象是不能访问这个数据域的,但是经常会有客户端需要存取,修改数据域的情况,为了能够访问私有数据域,Java可以使用一个get方法返回数据域的值,为了能够更新一个数据域,可以使用一个set方法给数据域设置新值,通常来讲,get方法称为读取器或访问器,set方法称为设置器或修改器。 set的意思为设置,而get的意思为获取,由此可见get()和set()两个方法分别是用来获取和设置数据的。在使用两方法时一般的方法都是后边加上某个单词来表明将要设置或者获取的功能,比如setAge(),getName() 其含义为设置年龄,获取名字。 Java中的this关键字,其主要作用是当需要给类中的数据进行初始化时,可以通过this来进行赋值,而不用随便定义一个变量来进行赋值,更有利于代码的阅读与理解。 class Book{//定义书的类 private String name;//书本名字 private int price;//书本价格 public Book(String name,int price){ //使用this对类的数据进行初始化 this.name = name; this.price = price; } /*public Book(String n,int p){ //若不使用this关键字只能这样进行赋值,不利于将变量与属性统一起来 name = n; price = p; }*/ }下面用一个例子来说明get,set和this关键字的用法: * * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package javaapplication36;/** * * @author Administrator */class Phone{ //使用private修饰只能通过方法访问,不能在其他类中进行直接访问 //品牌 private String brand; //价格 private int price; //颜色 private String color; //这里面的所有this关键字都代表Phone对象 //setxx方法 public void setBrand(String brand){ //对象后面的成员变量 this.brand = brand; } //getxx方法 public String getBrand(){ return brand; } public void setPrice(int price){ this.price = price; } public int getPrice(){ return price; } public void setColor(String color){ this.color = color; } public String getColor(){ return color; } //所有的set方法都是用来设置值的,所有的get都是用来苑值的 } class PhoneDemo{ public static void main(String[] args){ //创建对象 Phone s = new Phone(); //通过get方法输出 System.out.println(s.getBrand()+"--"+s.getPrice()+"--"+s.getColor()); //设置品牌 s.setBrand("三星"); //设置价格 s.setPrice(11111); //设置颜色 s.setColor("黄色"); //输出设置后的结果 System.out.println(s.getBrand()+"--"+s.getPrice()+"--"+s.getColor()); }}我们可以看到,在Phone类中,定义了三个私有变量brand,price和color,在类外的对象正常来说是无法访问这三个私有变量数据域的,但是我们想在主类中访问这三个私有变量,因此在Phone类中提供了一个get方法和set方法,用来得到和修改私有变量的值。 而在数据域的set方法中,经常将数据域名作为参数名,在这种情况下,这个数据域在set方法中被隐藏,为了给它设置新的值,需要在方法中引用隐藏的数据域名,隐藏的静态变量可以直接通过类名.静态变量来实现,而隐藏的实例变量就需要使用关键字this来引用。关键字this给出一种指代对象的方法,这样可以在实例方法代码中调用实例方法: this.color = color;这一行的意思就是将参数color的值赋给调用对象的数据域color,而如果color是静态变量,则可以直接用Phone.color来表示。上方代码运行截图如下: 程序正确运行,可以在外部类中修改其他类中的私有数据域。 关键字this的另一个常用方法是让构造方法调用同一个类中的另一个构造方法,举个例子来说: class Book{//定义书的类 private String name;//书本名字 private int price;//书本价格 public Book(){//无参构造 System.out.printIn("*************"); } public Book(String name){//一参构造 this();//调用本类中的无参构造 this.name = name; } public Book(String name,int price){//二参构造 this(name);//调用本类中的一参构造 this.price = price; } public String getInfo(){ return "书籍:" + name + ",价格:" + price; }}public class ThisDemo{ public static void main(String args[]){ System.out.printIn(new Book("Java",89.9).getInfo()) }}代码中的第四行,为无参构造,而代码中的第八行使用this调用本类中的无参构造,如果一个类中有多个构造方法,最好使用this实现它们,注意,Java要求在构造方法中,语句this(参数列表)应该在任何其他语句之前出现! |
CopyRight 2018-2019 实验室设备网 版权所有 |