java 关键字 private
private:私有的
使用private定义数据,会使这个数据只能在本类中访问,这就是最基本的封装
封装概述:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处:隐藏实现细节,提供公共的访问方式。提高了代码的复用性。提高了安全性
封装原则:将不需要对外提供的内容都隐藏起来。把属性隐藏,提供公共方法对其访问
class Student{
/*StudentDemo类是一个测试类,测试类一般只创建对象,调用方法
所以这个判断应该定义在Student类中*/
String name;
//private把年龄这一成员变量变成了本类中私有的变量,只能由本类中的方法调用,这就是基本的封装
private int age;
/*不可以在成员变量的位置进行判断,因为数据校验必须依靠一些逻辑语句
所以校验应该在成员方法中*/
public void setAge(int a) {
if(a<0||a>120)
System.out.println("你给的年龄有问题");
else
age=a;
}
public void show() {
System.out.println(name);
System.out.println(age);
System.out.println("-----------");
}
}
public class FengZhuanTest {
public static void main(String[] args) {
Student s = new Student();
//s.age=27;
s.setAge(27);
s.name="张三";
s.show();
/*通过对象给成员变量赋值,可以赋值一些非法的数据,这是不合理的,应该在赋值之前先对数据进行判断*/
//s.age=-27;
s.setAge(-27);
s.show();
}
}
private的练习:
给出长方形的长和宽,求出周长和面积
import java.util.Scanner;//import 必须写在所有class的前面,这个是读入键盘输入的包
class ChangFangXing{
//长方形的长
private int length;
//长方形的宽
private int width;
//赋值
public void setLength(int length) {
this.length=length;
}
//赋值
public void setWidth(int width) {
this.width=width;
}
//长方形周长
public int ZhouChang() {
return (length+width)*2;
}
//长方形的面积
public int mainji() {
return (length*width);
}
}
public class ChangFangXingTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入长方形的长:");
int length=sc.nextInt();//键盘输入
System.out.println("请输入长方形的宽:");
int width=sc.nextInt();//键盘输入
ChangFangXing cfx = new ChangFangXing();
cfx.setLength(length);
cfx.setWidth(width);
System.out.println("长方形的周长是:"+cfx.ZhouChang());
System.out.println("长方形的面积是:"+cfx.mainji());
}
}