private最常见的应用:
1、把成员变量用private修饰
2、提供对应的getXxx()/setXxx()方法
3、一个标准的案例的使用
直接访问存在安全问题
package blackHorse;
/*
* 学生类
*
* 通过对象直接访问成员变量,会存在安全问题
* 这个时候,我们就想能不能不让外界的对象直接访问成员变量呢?
* 能。
* 如何实现呢?
* private关键字!
*/
public class Student {
String name;
int age;
public void show() {
System.out.println("姓名是:" + name + ";年龄是:" + age);
}
}
package blackHorse;
/*
* 学生测试类
*/
public class studentTest {
public static void main(String[] args) {
Student garen = new Student();
garen.show();
garen.name = "盖伦";
//garen.age = 28;
garen.age = -28;
garen.show();
}
}

public void setAge(int a1) {
age = a1;
}
garen.setAge(-28);

package blackHorse;
/*
* 学生类
*
* private:
* 是一个修饰符
* 可以修饰成员变量,也可以修饰成员方法
* 被private修饰的成员只能在本类中被访问
*
* 针对private修饰的成员变量,我们会相应的提供getXxx()和setXxx()用于获取和设置成员变量的值,方法用public修饰
* not visible
*
*在setAge()方法里判断年龄的范围,看是否有误,再决定是否输出。
*/
public class Student {
String name;
//int age;
private int age;
public void show() {
System.out.println("姓名是:" + name + ";年龄是:" + age);
}
//setAge()方法
public void setAge(int a1) {
if(a1<0 || a1 >200) {
System.out.println("你给的年龄有误");
}else {
age = a1;
}
}
public int getAge() {
return age;
}
}
package blackHorse;
/*
* 学生测试类
*/
public class studentTest {
public static void main(String[] args) {
Student garen = new Student();
garen.show();
garen.name = "盖伦";
//garen.age = 28;
//garen.age = -28;//not visible
garen.setAge(-28);
//garen.setAge(28);
//garen.getAge();//获取初始值
garen.show();
}
}

成员变量私有的标准代码(封装)
-
学生类
1.成员变量私有化
2.分别写出他们的set,get方法()
3.set方法里做了判断 -
学生测试类
1.创建对象
2.get方法得到默认值,set方法赋值
3.赋值后再用get方法得到现在的值
package blackHorse;
/*
* 学生类。
*/
public class Student {
private String name;
private int age;
public void setName(String n) {
name = n;
}
public String getName() {
return name;
}
public void setAge(int a) {
age = a;
}
public int getAge() {
return age;
}
}
package blackHorse;
/*
* 学生测试类
*/
public class studentTest {
public static void main(String[] args) {
//创建对象
Student s = new Student();
//因为没有赋值,所以得到默认值。
System.out.println(s.getName()+"---"+s.getAge());
s.setName("urnotbear");
s.setAge(20);
//第二次进行了赋值,所以get方法得到有值。
System.out.println(s.getName()+"---"+s.getAge());
}
}

封装原则:
1.将不需要对外提供的内容都隐藏起来
2.把属性隐藏,提供公共方法对其访问
—成员变量private,提供对应的getXxx()和setXxx()方法
本文详细介绍了在Java中如何使用private关键字进行成员变量的封装,通过提供getXxx()和setXxx()方法来确保数据的安全性和正确性。文章通过学生类的例子,展示了如何限制年龄字段的合法范围,避免了直接访问成员变量可能带来的安全问题。
3553

被折叠的 条评论
为什么被折叠?



