Java实验二 面向对象(一)

实验目的:

在集成开发环境下,运用Java语言的面向对象的特性来实现类的封装、构造方法的定义以及对象的实例化和对象方法的调用。

实验目标:

(1)能够根据实际的一类对象通过Java语言来进行类的定义;
(2)能够熟练运用构造方法来实例化对象以及调用对象的方法。

实验内容:

1.定义一个汽车类,要求该类中至少包含5个私有的属性(为每个属性定义设置和获取方法),该类中至少包含两个构造方法(一个无参,一个有参),以及包含5-6个方法来描述汽车对象的行为(其中一个方法要能打印输出汽车对象的所有属性值)。
2.定义一个类,该类中包含以下几个方法(静态):
实现两个字符串数组的逆序排序,输出结果为字符串数组;
求两个整形数组的交集;
求两个浮点型数组的并集;
3.定义一个类:团队(Team),该类中包含一些其它类的对象(教师,研究生,本科生等),为该类定义一个有参的构造方法及一些方法来描述团队的行为。

源代码及结果

1.定义一个汽车类

package experiment11;

public class Car {
	private String brand;
	private String carNum;
	private String color;
	private int    price;
	private String weight;
	public void setBrand(String brand) {
		this.brand = brand;
	}
	public String getBrand() {
		return brand;
	}
	public void setCarNum(String carNum) {
		this.carNum = carNum;
	}
	public String getCarNum() {
		return carNum;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public String getColor() {
		return color;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	public int getPrice() {
		return price;
	}
	public void setWeight(String weight) {
		this.weight = weight;
	}
	public String getWeight() {
		return weight;
	}
	
	public Car(String brand,String carNum,String color,int price,String weight){
		this.brand = brand;
		this.carNum = carNum;
		this.color = color;
		this.price = price;
		this.weight = weight;
	}
	
	public static void people(){
		System.out.println("车上已做2人。");
	}
	public static void life(){
		System.out.println("车还有19年寿命。");
	}
	public static void doing(){
		System.out.println("车正在行驶中。");
	}
	public static void price(){
		System.out.println("车的价格有点高。");
	}
	public static void run(){
		System.out.println("车已经行驶了53422公里。");
	}
	public static void aboutCar(){
		Car car=new Car("科迈罗","5598","黄",1567890,"5435吨");
		System.out.println("汽车品牌:"+car.brand);
		System.out.println("汽车车牌号:"+car.carNum);
		System.out.println("汽车颜色:"+car.color);
		System.out.println("汽车价格:"+car.price);
		System.out.println("汽车空载量:"+car.weight);
	}
	
	public static void main(String[] args){
		Car.aboutCar();
	}
}


在这里插入图片描述

package experiment12;

public class Array {
	public static void niXu(String str[]){
		for(int i = str.length - 1;i >= 0 ;i--){
			System.out.printf(str[i]);
		}
	}
//并集	
	public static void add(int[] a,int[] b){
		int[] c = new int[20];
		int k = a.length;
		for(int i = 0; i < a.length;i++){
			c[i] = a[i];
		}
		for(int i = 0;i < b.length;i++){
			int o = 0;
			for(int j = 0;j < k;j++){
				if(b[i] == c[j]){
					o = 1;
				}
			}
			if(o == 0){
				c[k++] = b[i];
			}
		}
		for(int i = 0;i < k;i++){
			System.out.print(" " + c[i]);
		}
	}
//交集	
	public static void Minus(int[] a,int[] b){
		int[] c = new int[20];
		int k = 0;
		for(int i = 0;i < a.length;i++){
			for(int j = 0;j < b.length;j++){
				if(a[i] == b[j]){
					c[k++] = b[j];
					break;
				}
			}
		}
		for(int i = 0;i < k;i++){
			System.out.print(" " + c[i]);
		}
	}
}

package experiment12;

public class Test {
	public static void main(String[] args) {
		String str1[] = {"Hello","World!"};
		String str2[] = {"abc","def"};
		
		int a1[] = {1,2,3,4,5};
		int a2[] = {6,7,8,9,0,10};
		int a3[] = {1,2,3,4,5};
		int a4[] = {5,6,7,4};
	
		Array.niXu(str1);
		System.out.println("");
		Array.niXu(str2);
		
		System.out.println("");
		Array.add(a1, a2);
		
		System.out.println("");
		Array.Minus(a3, a4);
	}
}

在这里插入图片描述

package experiment13;

public class Teacher {
	private String name;
	private String sex;
	private int    age;
	
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getSex() {
		return sex;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return age;
	}
	
	public Teacher(String name,String sex,int age){
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	
}

package experiment13;

public class Graduate {
	private String 	name;
	private String	sex;
	private int    	age;
	private String 	nameGra;
	
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getSex() {
		return sex;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return age;
	}
	public void setNumGra(String numGra) {
		this.nameGra = numGra;
	}
	public String getNumGra() {
		return nameGra;
	}
	
	
	public Graduate(String name,String sex,int age,String nameGra){
	this.name = name;
	this.sex = sex;
	this.age = age;
	this.nameGra = nameGra;
	}
}

package experiment13;

public class Undergraduate {
	private String 	name;
	private String	sex;
	private int    	age;
	private String 	nameUngra;
	public int length;
	
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getSex() {
		return sex;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return age;
	}
	public void setNumUngra(String numUngra) {
		this.nameUngra = numUngra;
	}
	public String getNumUngra() {
		return nameUngra;
	}
	
	public Undergraduate(String name,String sex,int age,String nameUngra){
		this.name = name;
		this.sex = sex;
		this.age = age;
		this.nameUngra = nameUngra;
	}
}

package experiment13;

public class Team {
		private String name;
		private String className;
		private int    maxNum;
		private int currentUcount;//当前本科生数量
		private int currentGcount;//当前研究生数量
		private Teacher teacher;
		private Undergraduate[] undergraduateList;
		private Graduate[] graduateList;
		
		public Team(String name,String className,int maxNum){
			this.setName (name);
			this.setClassName(className);
			this.setMaxNum (maxNum);
			undergraduateList=new Undergraduate[maxNum / 2];
			graduateList=new Graduate[maxNum / 2];
		}
		
		public void setName(String name) {
			this.name = name;
		}
		public String getName() {
			return name;
		}
		public void setClassName(String className) {
			this.className = className;
		}
		public String getClassName() {
			return className;
		}
		public void setMaxNum(int maxNum) {
			this.maxNum = maxNum;
		}
		public int getMaxNum() {
			return maxNum;
		}
		public void setCurrentUcount(int currentUcount) {
			this.currentUcount = currentUcount;
		}
		public int getCurrentUcount() {
			return currentUcount;
		}
		public void setCurrentGcount(int currentGcount) {
			this.currentGcount = currentGcount;
		}
		public int getCurrentGcount() {
			return currentGcount;
		}
		public void setTeacher(Teacher teacher) {
			this.teacher = teacher;
		}
		public Teacher getTeacher() {
			return teacher;
		}
		public void setUndergraduateList(Undergraduate[] undergraduateList) {
			this.undergraduateList = undergraduateList;
		}
		public Undergraduate[] getUndergraduateList() {
			return undergraduateList;
		}
		public void setGraduateList(Graduate[] graduateList) {
			this.graduateList = graduateList;
		}
		public Graduate[] getGraduateList() {
			return graduateList;
		}
		
		//指导老师加入
		public void tInTeam(Teacher teacher){
			this.teacher = teacher;
			System.out.println("指导老师"+teacher.getName()+"加入团队"+getName());
		}
		//本科生加入
		public void uInTeam(Undergraduate[] inUndergraduateList)
		{
			for(int i=0;i< inUndergraduateList.length;i++)
			{
				uInOneTeam( inUndergraduateList[i]);
			}
		}
		public void uInOneTeam(Undergraduate undergraduate)
		{
			if(currentUcount==maxNum)
			{
				System.out.println("该团队本科生已足够");
			}
			else
			{
				currentUcount++;
				for(int i=0;i<undergraduateList.length;i++)
				{
					if(undergraduateList[i]==null)
					{
						undergraduateList[i]=undergraduate;
						System.out.println(undergraduate.getName()+"已加入团队");
						break;
					}
				}
			}
		}
		//研究生加入
		public void gInTeam(Graduate[] inGraduateList)
		{
			for(int i=0;i< inGraduateList.length;i++)
			{
				gInOneTeam(inGraduateList[i]);
			}
		}
		public void gInOneTeam(Graduate graduate)
		{
			if(currentGcount==maxNum)
			{
				System.out.println("该团队研究生已足够");
			}
			else
			{
				currentGcount++;
				for(int i=0;i<graduateList.length;i++)
				{
					if(graduateList[i]==null)
					{
						graduateList[i]=graduate;
						System.out.println(graduate.getName()+"已加入团队");
						break;
					}
				}
			}
		}
		//输出团队信息
	    public  void Pri(Team team)
	    {
	        System.out.println("团队名称:" + team.getName() + " 指导老师:" + getTeacher().getName() + " 课题名称:" + getClassName());
	        System.out.println("研究生:");
	        for(int i = 0;i < graduateList.length;i++)
	        {
	            if(graduateList[i] != null)
	            System.out.printf(" " + graduateList[i].getName());
	        }
	        System.out.println("\n" + "本科生:");
	        for(int i = 0;i < undergraduateList.length;i++)
	        {
	            if(undergraduateList[i] != null)
	                System.out.printf(" " + undergraduateList[i].getName());
	        }
	        System.out.println("");
	    }
	}

package experiment13;

public class Text {
	public static void main(String[] args){
		Undergraduate undergraduate1=new Undergraduate("杨杰","男",21,"本科生");
		Undergraduate undergraduate2=new Undergraduate("杨浩","男",19,"本科生");
		
		Graduate graduate1 = new Graduate("张钰","女",22,"研究生");
		Graduate graduate2 = new Graduate("钟慕寒","男",24,"研究生");
		
		Teacher teacher1 =  new Teacher("李程","男",53);
	    Teacher teacher2 =  new Teacher("王晟","男",42);
	    
	    Team team1 = new Team("研究团队1","人工智能",15);
	    Team team2 = new Team("研究团队2","Gps",20);
	    team1.tInTeam(teacher1);
	    team2.tInTeam(teacher2);

	    team1.gInOneTeam(graduate1);
	    team2.gInOneTeam(graduate2);

	    team1.uInOneTeam(undergraduate1);
	    team2.uInOneTeam(undergraduate2);
	    team1.Pri(team1);
	    team2.Pri(team2);
	}
}

在这里插入图片描述

实验小结

我通过本实验,我学习到了如何创建一个对象,并且利用该对象调用类的成员函数,以及学会了使用构造函数来初始化类的成员变量。了解构造函数是类函数,函数名与类名完全相同,无返回值。允许在一个类中编写若干个构造方法,但是必须保证它们的参数不同,参数不同是:参数的个数不同,或参数个数相同,但参数列表中对应的某个参数的类型不同。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值