Java初学 对象组合及调用

提示:此篇文章中的内容仅为初学者的尝试,有啥更好的建议欢迎评论区留言交流。


前言

学习了一段时间的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相关的代码。假如我们还有其他使用这两个的类,比如其他学生和其他老师,我们都可以将对象组合进去。这样就不用为每个类单独编写相关功能了。

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值