JAVA 私有成员变量的调用 与 构造函数私有化 、构造函数保持成员变量私有性 | 您所在的位置:网站首页 › 静态私有成员变量调用 › JAVA 私有成员变量的调用 与 构造函数私有化 、构造函数保持成员变量私有性 |
如下代码,student类成员变量设置了私有化(即用private修饰属性),这样将变量封闭在类的内部中,为提高数据安全性的同时,其他类和对象也无法对其变量进行访问或调用了。 public class student { private String name ; private int age; } 我们可以通过两种方法对其变量进行调用: 第一,直接点击STS中自带的Generate Getters and Setters (即set()和get()方法 ),其中,set为给对象赋值的方法,而get则是取得变量值的方法。 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } 首先,方法设置为public,即可以被其他类和对象调用其方法;然后set()方法中 数据类型 为 void (没有返回值),用this关键字指全局变量的name,而调用该方法输入参数name(即右边的name),赋值给this.name,但单用set()方法无法返回其值,根本无法输出结果,只能输出该类的地址 如图: 最后需要用get()方法为其获取并输出结果,同样设置了public,其数据类型根据实际情况设置为String,返回其String类型的值。 如图: 第二,用public修饰构造函数,传入name,age两个参数,即创造对象时就需拥有了其属性值。 注意:构造函数的名称和类名完全相同 构造函数没有返回值,也不需要返回值类型,所以输出结果需用到STS自带的Generate toString() 方法。 public stu(String name , int age) { this.name = name ; this.age = age ; } @Override public String toString() { return "" + name + "," + age + ""; } 构造函数私有化: 所以构造函数私有化,可以将构造函数中的public 用 private 修饰。同样这样构造函数只能在内部调用了。如果还是要将它对其进行外部调用呢? 不同的是,私有化构造函数需要在其内部创建一个对象并赋予属性值,通过用公共的方法获取其对象,而在外部去调用该方法,仅仅获取了该对象,无法达到赋予对象值的功能。 public class stu { private String name; private int age; static stu student = new stu("xiaoming", 18); //在内部中创建一个对象并赋值属性 private stu(String name , int age) //构造函数私有化 { this.name = name ; this.age = age ; } public static stu getstudent() //创造一个公开的方法在内部获取对象 { return student; } @Override public String toString() { return "" + name + "," + age + ""; } } public class test { public static void main(String[] args) { stu s = stu.getstudent(); System.out.println(s); } } 测试并输出结果: 构造函数保持成员变量私有性:用公共的方法对成员变量进行访问或者能够对它进行赋值。 public class student { private String name ; private int age public void setName(String name) { this.name = name; } public student() { setName(name); } public String toString() { return "name=" + name + ""; } } |
CopyRight 2018-2019 实验室设备网 版权所有 |