JAVA 私有成员变量的调用 与 构造函数私有化 、构造函数保持成员变量私有性 您所在的位置:网站首页 静态私有成员变量调用 JAVA 私有成员变量的调用 与 构造函数私有化 、构造函数保持成员变量私有性

JAVA 私有成员变量的调用 与 构造函数私有化 、构造函数保持成员变量私有性

2023-07-22 09:31| 来源: 网络整理| 查看: 265

如下代码,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 实验室设备网 版权所有