【Java的零基础入门】:接口的实现(三)

161 阅读3分钟

我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿

问题描述:

一、定义接口Shape,包含如下方法:double getArea()方法和double getPerimeter()方法

  • 定义矩形类,实现上述接口。
  • 定义测试类。

定义Shape父类接口,Rectangle子类的接口实现,定义长宽,构造函数,实现方法,然后调用方法,输出面积和周长

package test8;

interface Shape{ //定义父类接口
	double getArea();
	double getPerimeter();
}
public class S1{
	public static void main(String[] args){
		Shape C1=new Rectangle(3.7,5.0);
		C1.getArea();
		C1.getPerimeter();
		System.out.println("矩形的面积:"+C1.getArea());
		System.out.println("矩形的周长:"+C1.getPerimeter());
		
	}
}
class Rectangle implements Shape {  //接口的实现
  public double length;
  public double height;
  
  Rectangle(double x,double y){  //构造函数
		length=x;
		height=y;
	}
  public double getArea(){  //方法
	  return length*height;
  }
  public double getPerimeter(){
	  return 2*(length+height);
  }

}

在这里插入图片描述

问题描述:

二、设计一个接口Student,该接口描述的是本科生(StudentG)和硕士生(StudentM)的公共方法:设置姓名,设置学号,输出所有信息,判断学生是否优秀。在该接口的基础上实现两个类StudentG和StudentM。

  • StudentG属性:姓名,学号,是否过CET4,上学年综合测评成绩。StudentG包含方法:构造函数,设置是否过CET4,设置上学年综合测评成绩,接口中定义的所有方法(本科生优秀的标准是过CET4,上学年综合测评成绩大于85分)。
  • StudentM属性:姓名,学号,是否过CET6,已发表文章篇数。StudentM包含方法:构造函数,设置是否过CET6,设置发表文章篇数,接口中定义的所有方法(硕士生优秀的标准是过CET6,已发表文章篇数是1).
  • 要求: (1)实现上述的接口和类 (2)(在main函数内)实例化四个对象:两个本科生,两个硕士生(至少各有一个优秀) (3)输出学生的所有属性信息。

定义Stu接口初始化,在该接口的基础上实现两个类StudentG和StudentM。姓名,学号,是否过CET4/CET6,上学年综合测评成绩, 发表文章篇数,调用abc()方法输出所有信息和调用youxiu()方法判断是否优秀

package test8;

public class Student01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentG s1 =new StudentG("本科张三","21924011",true,96);
		StudentG s2 =new StudentG("本科李四","21924012",false,63);
		s1.youxiu();s2.youxiu();       //调用方法

		StudentM t1 = new StudentM("硕士小华","21924014",true,5);
		StudentM t2 = new StudentM("硕士小讯","21924013",false,0);
		t1.youxiu();t2.youxiu();
		
		s1.abc();s2.abc();
		t1.abc();t2.abc();


	}

}

interface Stu{ //定义接口名
	
	void abc();
	void youxiu();
	
}
class StudentG implements Stu{ //接口的实现
	String name;
	String id;
	boolean Cet4;
	int score;
	public StudentG(String n,String Id,boolean CET4,int s){  //构造函数,形参列表,通过实参传递参数赋值
		Cet4=CET4;
		score=s;
		name=n;
		id=Id;
	}

	public void abc(){               //被调用方法,输出所有信息
		System.out.println("姓名:"+name+" "+"学号:"+id+" "+
				          "是否过CET4:"+Cet4+" "+"上学年综合测评成绩:"+score
	                       );
	}
	public void youxiu(){            //判断是否优秀
		if(Cet4&&score>85)
			System.out.println("姓名:"+name+"\t"+"优秀");
		else
			System.out.println("姓名:"+name+"\t"+"不优秀");
		
	}
	
	
}
class StudentM implements Stu{
	String name;
	String id;
	boolean Cet6;
	int wenzhang;
	
	public StudentM(String n,String ID,boolean CET6,int wz) {
		Cet6=CET6;
		wenzhang=wz;
		name=n;
		id=ID;
	}
	
	public void abc() {
		System.out.println("姓名:"+name+" "+"学号:"+id+" "+
		          "是否过CET6:"+Cet6+" "+"已发表文章篇数:"+wenzhang
                 );
	}
	public void youxiu(){
		if(Cet6&&wenzhang>1)
			System.out.println("姓名:"+name+"\t"+"优秀");
		else
			System.out.println("姓名:"+name+"\t"+"不优秀");
		
	}
}