1.private的介绍
在面向对象编程中,private是一种访问修饰符,用于限制成员的访问范围。私有成员只能在所属的类内部访问,对外部的类或对象是不可见的。
private的使用可以带来以下几个好处:
-
封装实现细节:私有成员可以隐藏在类的内部,不被外部对象直接访问。这样可以封装类的实现细节,使类的使用者只能通过公共接口进行操作,从而达到隐藏内部实现的目的,提高代码的安全性和可维护性。
-
防止误操作:私有成员的使用可以防止外部对象对类的内部状态进行直接修改,避免了错误的操作和数据的不一致性。只有通过类提供的公共接口,才能对私有成员进行访问和修改,确保了类的数据的正确性和一致性。
-
提供更好的封装性:私有成员可以控制对类的内部实现的访问权限,使类的使用者只能通过公共接口进行操作。这样可以提供更好的封装性,使类的内部细节对外部完全隐藏,减少了类的依赖和耦合性,提高了类的灵活性和可维护性。
需要注意的是,私有成员只能在所属的类内部进行访问,不能被外部类或对象直接访问。如果子类需要访问父类的私有成员,可以通过继承和公共方法来实现。另外,私有成员可以是属性、方法或构造函数等任何成员类型。
总结起来,private是一种访问修饰符,用于限制成员的访问范围。私有成员只能在所属的类内部访问,对外部的类或对象是不可见的。通过private的使用,可以实现封装实现细节、防止误操作和提供更好的封装性等好处。
2.代码中体现
public class Person{
private String name;
private int age;
private void priMethod(){
System.out.println("这是一个私有成员方法");
}
public void pubMethod(){
System.out.println("这是一个公有成员方法,接下来要调用私有成员方法");
this.priMethod();
}
//setter & getter方法
public void setAge(int age){
if(age < 0 || age > 150){
System.out.println("年龄非法~被设为默认值18");
this.age = 18;
return;
}
System.out.println("年零为"+age);
this.age = age;
}
public int getAge(){
return age;
}
public void setName(String name){
System.out.println("名字是"+name);
this.name = name;
}
public String getName(){
return name;
}
}
这段代码定义了一个名为Person的类,其中包含了私有的属性name和age,以及公有的方法pubMethod。
在这个类中,私有方法priMethod被定义为私有的,只能在Person类内部被访问。公有方法pubMethod可以被外部类或对象访问,并在其内部调用了私有方法priMethod,即通过公有方法来访问私有方法。
除了方法的定义,代码中还包含了属性的setter和getter方法。setter方法用于设置属性的值,在设置age属性时,添加了一些对年龄合法性的判断,如果年龄小于0或大于150,则输出错误信息并将年龄设为默认值18。getter方法用于获取属性的值。
总的来说,这段代码使用了private关键字来修饰成员变量name和age,使其成为私有成员,只能在Person类内部访问。私有方法priMethod也被定义为私有的,只能在Person类内部调用。通过使用私有成员,可以提高类的封装性,隐藏内部实现细节,只允许通过公有方法来访问和修改私有成员。
主函数中测试功能
Person person = new Person();
person.setAge(20);
person.setName("hh");
person.pubMethod();
//输出结果:
为名字是hh 年零为20
这是一个公有成员方法
3.Setter & Getter方法
setter和getter方法是用于操作私有成员变量的公有方法。
在面向对象编程中,为了保证数据的封装性和安全性,常将类的成员变量设置为私有(private)的。而为了能够访问和修改这些私有成员变量,需要提供公有的setter和getter方法。
setter方法用于给私有成员变量赋值,它通常以set开头,后面跟上对应的成员变量名。它接收一个参数,该参数是要赋给成员变量的值。通过setter方法可以对成员变量进行合法性检查和修改。
getter方法用于获取私有成员变量的值,它通常以get开头,后面跟上对应的成员变量名。它不接收任何参数,返回值是成员变量的值。通过getter方法可以获取到私有成员变量的值。
例如,在上述的代码中,setAge方法用于给age赋值,getAge方法用于获取age的值。setName方法用于给name赋值,getName方法用于获取name的值。
使用setter和getter方法的好处是,可以对成员变量进行控制和检查,确保数据的合法性。同时,也可以隐藏成员变量的具体实现细节,提高类的封装性和可维护性。
注意:在idea中可以快捷设置setter&getter方法
同时点击alt+insert键,根据自己的业务需求来选择Getter或者是Setter或者是Getter and Setter
选中一个,或者都选上(按shift键可同时选中) ,再点击OK