封装
封装是什么?
封装:隐藏类的内部细节,提供外部访问的方法。
类是什么?
具有相同 属性 和 方法 的事物的统称。
对象是什么?
类的实例,计算机中的独立的内存空间。
public class Student {
//private:
//私有化 将类的内部属性私有化,除本类外,其他任意类不能访问
//隐藏内部细节 与public相反
//有利于保证数据的安全性
//别的类访问需要提供 get set:方法
//get 取值
//set 赋值
private String name;
private int age;
private char sex;
private String tel;
//name 提供get方法
public String getName(){
return name;
}
//name 提供set方法
public void setName(String name){
this.name = name;
//this表示当前对象
}
//提供方法的快捷键alt+Insert生成get,set方法
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
// 可以在set里边加判断,保护某一个值的合法性
// if (age<0||age>130){
// this.age = 18;//如果age大于130小于0设置一个默认值为18
// }else {
// this.age = age;
// }
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
//上边这样封装麻烦
//可以统一赋值+
//要使用构造方法 方法名和类名相同,没有返回值
public Student(String name, int age, char sex, String tel) {
this.name = name;
this.age = age;
this.sex = sex;
this.tel = tel;
}
public Student() {
}
}
运行类
public class Test {
public static void main(String[] args) {
Student stu = new Student();
//赋值
stu.setName("小明");
System.out.println(stu.getName());
stu.setAge(18);
stu.setSex('男');
stu.setTel("15628141461");
System.out.println("姓名:"+stu.getName()+"\t年龄:"+stu.getAge()+"\t性别:"+stu.getSex()+"\t电话:"+stu.getTel());
//再创建一个对象
Student stu2 = new Student("小红",19,'女',"15659564657");
System.out.println("姓名:"+stu2.getName()+"\t年龄:"+stu2.getAge()+"\t性别:"+stu2.getSex()+"\t电话:"+stu2.getTel());
}
}