JAVA中封装以及this构造函数的用法
封装是java中面向对象的三大特征之一,其特点有:
1.对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。
2.对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。
我们可以通过将类的所有数据成员设为private,以在java中创建一个完全封装的类。现在我们可以使用setter和getter方法来设置和获取其中的数据。举个实例:
//学生类
public class Student {
private String name;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
}
//测试类
public class TestStudent {
public static void main(String[] args)
{
Student s=new Student();
s.setName("张三");
System.out.println(s.getName());
}
}
输出结果为:
张三
this关键字
-
Java中this关键字代表对象本身。用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源。
-
同时在构造函数中也可以使用this关键字调用本类中的其它构造函数,但有几点需要注意:
(1)构造函数调用其它构造函数,需要将this写在构造函数的第一行。
(2)构造函数不可递归,防止死循环。 -
一个类的构造函数分为无参和有参构造函数。通常做法是指定写好一个包含所有字段的构造函数,然后其它构造函数可以直接调用该函数,实现代码重用。
举个实例:
class Student{
private String name;
private int age;
public Person() {
System.out.println("这是无参构造方法");
}
public Person(String name) {
this();//调用本类中的无参构造
this.name=name;
}
public Person(String name,int age) {
this(name);//调用本类中的有参构造
this.age=age;
}
public String getInfo() {
return "姓名: "+this.name+" 年龄:"+this.age;
}
}
测试:
public class TestStudent {
public static void main(String[] args) {
Student sd=new Student();
System.out.println(sd.getInfo());
Student sd=new Student("张三");
System.out.println(sd.getInfo());
Student sd=new Student("张三",18);
System.out.println(ds.getInfo());
}
}
输出结果为:
这是无参构造方法
姓名: null 年龄:0
这是无参构造方法
姓名: 张三 年龄:0
这是无参构造方法
姓名: 张三 年龄:18