类里要包括:
私有属性(将属性定义为私有的,避免外部类非法地修改属性值)。
类的方法。
构造方法(用来根据所给的输入参数来创建该类的一个具体的对象)。
为私有属性创建的set(无返回型,含参)和get(有返回型,无参)方法。
外部需要new来引用类的构造方法,并用" . "操作符来引用对象。
实例化:
import java.util.Scanner;
public class CLASS {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("--------MyClass------------");
Student stu = new Student("YaYa", 18, "man", "201806xxxx");
Student stu2 = new Student("陈钰琪",18, "girl","201806xxxx");
Student[] students = new Student[2];
students[0] = new Student("iU", 18, "girl", "201806xxxx");
students[1] = new Student("鞠婧祎", 18, "girl", "201806xxxx");
MyClass myClass = new MyClass(stu, stu2, students);
/* System.out.print("班长信息:" + myClass.getMonitor().getStuName() + " " + myClass.monitor.getStuAge()
+ " " + myClass.monitor.getStuSex() + " " + myClass.monitor.getStuNum());*/
System.out.println("班长信息:");
myClass.monitor.printAll(myClass.monitor);
System.out.print("状态:");
stu.study();
myClass.universityTwo();
System.out.println();
System.out.println("团支书信息:");
myClass.lump.printAll(myClass.lump);
System.out.print("状态:");
stu2.doHomework();
myClass.universityTwo();
System.out.println();
System.out.println("班级成员信息:");
for (int i = 1; i < myClass.students.length + 1; i++) {
System.out.println("成员 " + i + " :");
myClass.students[i - 1].printAll(students[i - 1]);
}
}
public static class Student {
//类的私有属性
private String stuName;
private int stuAge;
private String stuSex;
private String stuNum;
//类的方法
public void printAll(Student stu) {
System.out.println("姓名是:" + stuName);
System.out.println("年龄是:" + stuAge);
System.out.println("性别是:" + stuSex);
System.out.println("学号是:" + stuNum);
}
public void study() {
System.out.print(" 在学习");
}
public void doHomework () {
System.out.print(" Doing homework");
}
public void test() {
System.out.print(" Testing");
}
//私有属性的构造和获取
public void setStuName (String stuName) {
this.stuName = stuName;
}
public String getStuName() {
return stuName;
}
public void setStuAge(int stuAge) {
this.stuAge = stuAge;
}
public int getStuAge() {
return stuAge;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
public String getStuSex() {
return stuSex;
}
public void setStuNum(String stuNum) {
this.stuNum = stuNum;
}
public String getStuNum() {
return stuNum;
}
//类的构造方法
public Student(String stuName, int stuAge, String stuSex, String stuNum) {
setStuName(stuName);
setStuAge(stuAge);
setStuSex(stuSex);
setStuNum(stuNum);
}
}
public static class MyClass{
//私有属性
private Student monitor;
private Student lump;
private Student[] students;
//方法
public void universityOne() {
System.out.print(" 大一");
}
public void universityTwo() {
System.out.print(" 大二");
}
//私有属性的set和get
public void setMonitor(Student monitor) {
this.monitor = monitor;
}
public Student getMonitor() {
return monitor;
}
public void setLump(Student lump) {
this.lump = lump;
}
public Student getLump() {
return lump;
}
public void setStudents(Student[] students) {
this.students = students;
}
public Student[] getStudents() {
return students;
}
//构造方法
public MyClass(Student monitor, Student lump, Student[] students) {
setMonitor(monitor);
setLump(lump);
setStudents(students);
}
}
}
运行结果:
--------MyClass------------
班长信息:
姓名是:YaYa
年龄是:18
性别是:man
学号是:201806xxxx
状态: 在学习 大二
团支书信息:
姓名是:陈钰琪
年龄是:18
性别是:girl
学号是:201806xxxx
状态: 写作业 大二
班级成员信息:
成员 1 :
姓名是:iU
年龄是:18
性别是:girl
学号是:201806xxxx
成员 2 :
姓名是:鞠婧祎
年龄是:18
性别是:girl
学号是:201806xxxx