1. ①封装是面向对象的三大特性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而通过该类提供的方法来实现对隐藏信息的操作和访问。
②修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值方法和取值方法,用于对这些属性的存取;在赋值方法中,加入对属性的存取控制语句。
③隐藏类的实现细节;让使用者只能通过程序规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理的操作。
2.package page2_94;
/**
* 学生类
* @author win8
*
*/
public class Student1 {
private String name; //姓名
private int age; //年龄
/**
* 读取名字
* @return
*/
public String getName() {
return name;
}
/**
* 指定姓名
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 读取年龄
* @return
*/
public int getAge() {
return age;
}
/**
* 指定年龄
* @param age
*/
public void setAge(int age) {
this.age = age;
if(age>16) {
System.out.println("大家好!我叫:"+name+","+"今年"+age+"岁了");
}
else {
System.out.println("错误信息!");
}
}
}
package page2_94;
import java.util.Scanner;
public class Student1Test {
public static void main(String[] args) {
Student1 student1=new Student1();
Scanner input=new Scanner(System.in);
System.out.print("请输入你的名字:");
String name=input.next();
System.out.print("请输入你的年龄:");
int age =input.nextInt();
student1.setName(name);
student1.setAge(age);
}
}
3.package page2_94;
public class Student2 {
String name;
int age;
String sex;
String subject;
public Student2(String name, int age) {
this.name = name;
this.age = age;
this.sex = "男";
this.subject = "java";
}
public Student2(String name, int age, String sex, String subject) {
this.name = name;
this.age = age;
this.sex = sex;
this.subject = subject;
}
public void show() {
System.out.println("大家好!我叫:" + name + "," + "今年" + age + "岁" + "," + "为" + sex + "性" + "," + "专业为:" + subject);
}
}
package page2_94;
import java.util.Scanner;
public class Student2Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个学员姓名:");
String name1 = input.next();
System.out.print("请输入第一个学员年龄:");
int age1 = input.nextInt();
Student2 student2 = new Student2(name1, age1);
student2.show();
System.out.print("请输入第二个学员姓名:");
String name2 = input.next();
System.out.print("请输入第一个学员年龄:");
int age2 = input.nextInt();
System.out.print("请输入第一个学员性别:");
String sex2 = input.next();
System.out.print("请输入第一个学员职业:");
String subject2 = input.next();
student2 = new Student2(name2, age2, sex2, subject2);
student2.show();
}
}