提示:此篇文章中的内容仅为初学者的尝试,有啥更好的建议欢迎评论区留言交流。
前言
学习了一段时间的Java,今天来给大家展示下基础知识中的对象组合
一、对象组合是个啥
我们可以在一个新类的定义中使用其他对象。这就是组合(composition)。组合是在Java中实现程序复用(reusibility)的基本手段之一。
组合:一个对象是另一个对象的数据成员。
二、例题
创建一个student类,类内含有姓名、性别和年龄等成员变量,定义获取各变量的方法和思考方法;创建一个teacher类,类内含有姓名、性别和年龄等成员变量,定义获取各变量的方法和教学方法;创建一个主类,主类中创建一个student对象,一个teacher对象和一个people对象。输出对象的相关信息。
1.创建student类
代码如下(示例):
public class Student {
int age;
String sex,name;
void get(String name1,String sex1,int age1){
name=name1;
age=age1;
sex=sex1;
}
void thinking(String s) {
System.out.println(name+"在想:"+s);
}
}
定义学生的各变量,定义方法获取各变量。
该处“思考方法”使用构造方法。
2.创建teacher类
代码如下(示例):
public class Teacher {
int age;
String sex,name;
void get(String name1,String sex1,int age1){
name=name1;
age=age1;
sex=sex1;
}
void way(String s) {
System.out.println(name+"的教学方法是:"+s);
}
}
与student类类似。
3.创建people类
代码如下(示例):
public class People {
Student st=new Student();
Teacher te=new Teacher();
People(Student st,Teacher te){
this.st=st;
this.te=te;
}
void set_st(String name,String sex,int age){
st.get(name, sex, age);
}
void show_st() {
System.out.println("姓名:"+st.name);
System.out.println("性别:"+st.sex);
System.out.println("年龄:"+st.age);
}
void set_te(String name,String sex,int age){
te.get(name, sex, age);
}
void show_te() {
System.out.println("姓名:"+te.name);
System.out.println("性别:"+te.sex);
System.out.println("年龄:"+te.age);
}
void thinking(String s){
st.thinking(s);
}
void way(String s) {
te.way(s);
}
}
4.创建主类
代码如下(示例):
public class Zhu {
public static void main(String[] args) {
Student s1=new Student();
Teacher t1=new Teacher();
People p1=new People(s1,t1);
p1.set_st("张三", "男", 20);
p1.set_te("李四","男",30);
System.out.println("\n学生信息:");
p1.show_st();
p1.thinking("Java真好啊!");
System.out.println("\n教师信息:");
p1.show_te();
p1.way("线上直播");
}
}
在主类中直接调用p1对象即可
总结
通过组合,我们可以复用student和teacher相关的代码。假如我们还有其他使用这两个的类,比如其他学生和其他老师,我们都可以将对象组合进去。这样就不用为每个类单独编写相关功能了。