类与面向对象之间的关系java,类与类之间的包含关系。

我们知道面向对象语言的三大特征是封装、继承、多态。我们在定义了一个类之后,可以通过再定义一个类,且这个类继承上一个类来扩展其功能。其实,在我们定义类时,类中的成员变量除了基本数据类型也可以是引用数据类型。下面我将编写一个有关类成员变量中引用数据类型使用的例子。

在这个程序中,首先定义一个学校类,再定义一个班级类,最后定义一个学生类。在主程序中通过设置不同类型对象间的关系,达到类与类之间包含的关系。

代码如下:

//学校类

package com.TinySK;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

class School{

private String name;

//一个学校有多个班级 ,通过集合类List  实现。

private List allClss;

public School(String name){

this.setName(name);

this.setAllClss(new ArrayList());

}

//向学校中加入班级

public void add(Cls cls){

this.allClss.add(cls);

}

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

public void setAllClss(List allClss){

this.allClss = allClss;

}

public List getAllClss(){

return this.allClss;

}

}

//班级类

class Cls{

private String name;

private School school;  //此处定义了一个学校类的对象。

private List allStudents;//一个班级有多个学生 ,通过集合类List  实现。

public Cls(String name){

this.setName(name);

this.setAllStudents(new ArrayList());

}

//向班级中加入学生

public void add(Student stu){

this.allStudents.add(stu);

}

public List getAllStudents(){

return this.allStudents;

}

public void setAllStudents(List allStudents){

this.allStudents = allStudents;

}

public void setSchool(School school){

this.school = school;

}

public School getSchool(){

return this.school;

}

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

}

//学生类

class Student{

private String name;

private int age;

//一个学生属于一个班级

private Cls cls;

public Student(String name,int age){

this.setName(name);

this.setAge(age);

}

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

public void setAge(int age){

this.age = age;

}

public int getAge(){

return this.age;

}

public void setCls(Cls cls){

this.cls = cls;

}

public Cls getCls(){

return this.cls;

}

}

//主函数

public class Test{

public static void main(String[] args){

School sch = new School("Java blog");

Cls c1 = new Cls("Java一班");

Cls c2 = new Cls("Java二班");

Cls c3 = new Cls("Java三班");

Student stu1 = new Student("Tiny",20);

Student stu2 = new Student("SK",25);

Student stu3 = new Student("sevn",23);

Student stu4 = new Student("puck",28);

Student stu5 = new Student("lion",35);

//设置关系

sch.add(c1);

c1.setSchool(sch);

sch.add(c2);

c2.setSchool(sch);

sch.add(c3);

c3.setSchool(sch);

c1.add(stu1);

stu1.setCls(c1);

c2.add(stu2);

stu2.setCls(c2);

c2.add(stu3);

stu3.setCls(c2);

c3.add(stu4);

stu4.setCls(c3);

c3.add(stu5);

stu5.setCls(c3);

//如果要输出全部的内容,则要进行双重循环

System.out.println("学校名称:"+sch.getName());

Iterator iter1 = sch.getAllClss().iterator();

while(iter1.hasNext()){

Cls c = iter1.next();

System.out.println("\t|- 班级名称:"+c.getName());

//输出一个班级中的全部学生

Iterator iter2 = c.getAllStudents().iterator();

while(iter2.hasNext()){

Student s = iter2.next();

System.out.println("\t\t|- 学生姓名:"+s.getName()+",学生年龄:"+s.getAge()+" --> "+s.getCls().getSchool().getName());

}

}

}

}

运行结果如图:_OM38%5B@O%24QC@2%7BVTXN%60E9A1_thumb.jpg

本例并没有什么太多的难点,只是想突出一下类与类之间的关系。本文到此结束,有很多不足之处望大家批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值