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

简介: Java的零基础入门:接口的实现(三)


博主简介:

博客主页:Java知识分享博主

Java零基础入门专栏:Java零基础入门专栏

Java交流社区:飞鸟社区

欢迎阅读,如果文章对你有帮助点赞,支持一下!


文章目录


推荐阅读

Java零基础入门:概论(一)

Java零基础入门:实战教程(二)


问题描述:

一、定义接口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"+"不优秀");
  }
}


目录
打赏
0
0
0
0
101
分享
相关文章
|
22天前
|
Java 抽象类与接口在 Java17 + 开发中的现代应用实践解析
《Java抽象类与接口核心技术解析》 摘要:本文全面剖析Java抽象类与接口的核心概念与技术差异。抽象类通过模板设计实现代码复用,支持具体方法与状态管理;接口则定义行为规范,实现多态支持。文章详细对比了两者在实例化、方法实现、继承机制等方面的区别,并提供了模板方法模式(抽象类)和策略模式(接口)的典型应用示例。特别指出Java8+新特性为接口带来的灵活性提升,包括默认方法和静态方法。最后给出最佳实践建议:优先使用接口定义行为规范,通过抽象类实现代码复用,合理组合两者构建灵活架构。
36 2
|
3月前
|
Java Lambda 表达式:以 Foo 接口为例深入解析
本文深入解析了 Java 8 中 Lambda 表达式的用法及其背后的函数式接口原理,以 `Foo` 接口为例,展示了如何通过简洁的 Lambda 表达式替代传统匿名类实现。文章从 Lambda 基本语法、函数式接口定义到实际应用层层递进,并探讨默认方法与静态方法的扩展性,最后总结常见误区与关键点,助你高效优化代码!
88 0
|
3月前
|
java中一个接口A,以及一个实现它的类B,一个A类型的引用对象作为一个方法的参数,这个参数的类型可以是B的类型吗?
本文探讨了面向对象编程中接口与实现类的关系,以及里氏替换原则(LSP)的应用。通过示例代码展示了如何利用多态性将实现类的对象传递给接口类型的参数,满足LSP的要求。LSP确保子类能无缝替换父类或接口,不改变程序行为。接口定义了行为规范,实现类遵循此规范,从而保证了多态性和代码的可维护性。总结来说,接口与实现类的关系天然符合LSP,体现了多态性的核心思想。
83 0
JAVA接入DeepSeek大模型接口开发---阿里云的百炼模型
随着大模型的越来越盛行,现在很多企业开始接入大模型的接口,今天我从java开发角度来写一个demo的示例,用于接入DeepSeek大模型,国内的大模型有很多的接入渠道,今天主要介绍下阿里云的百炼模型,因为这个模型是免费的,只要注册一个账户,就会免费送百万的token进行学习,今天就从一个简单的可以执行的示例开始进行介绍,希望可以分享给各位正在学习的同学们。
553 3
JAVA接入DeepSeek大模型接口开发---阿里云的百炼模型
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
877 5
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
7月前
|
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
109 6
|
8月前
|
Java中内置的函数式接口
Java中内置的函数式接口
85 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问