【Java】助力期末

【Java】助力期末

本资料由 后端码匠 提供 更多精彩详请关注公众号

1.成绩分布

import java.util.Random;
public class Grand {public static void main(String[] args) {// TODO Auto-generated method stubfloat score;Random r=new Random();score=r.nextFloat()*100;System.out.printf("%2.1f\n",score);if(score>=90){System.out.println("A等");}else if(score>=60&&score<90){System.out.println("B等");}else if(score<60){System.out.println("C等");}}
}

2.性别问题

import java.util.Scanner;
public class Sex {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("您的性别是:\n1.男\n2.女\n请根据具体情况选择编号:");Scanner in=new Scanner(System.in);int a;a=in.nextInt();in.close();switch(a){case 1:System.out.println("您选择的性别是男人");break;case 2:System.out.println("您选择的性别是女人");break;default:System.out.println("数据非法!");break;}}}

3.年龄段查询

import java.util.Scanner;
public class Age {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("您想要查询的年龄段:\n1.幼年\t2.童年\t3.少年\n4.壮年\t5.中年\t6.老年\n请根据具体情况选择编号:");Scanner in=new Scanner(System.in);int num;num=in.nextInt();in.close();switch(num){case 1:System.out.println("幼年的年龄范围是从出生到七岁.");break;case 2:System.out.println("童年的年龄范围是从七岁到十六岁...");break;case 3:System.out.println("少年的年龄范围是从十六岁到二十五岁..");break;case 4:System.out.println("壮年的年龄范围是从二十五岁到四十岁...");break;case 5:System.out.println("中年的年龄范围是从四十岁到六十五岁...");break;case 6:System.out.println("老年的年龄范围是大于六十五岁..");break;default:System.out.println("输入编号非法!");break;}}
}

4.1到100求和

public class Sum {public static void main(String[] args) {// TODO Auto-generated method stubint sum=0;int i=0;while(i<100) {i++;sum+=i;}System.out.println("sum="+sum);}
}

5.自由落体

public class Height {public static void main(String[] args) {// TODO Auto-generated method stubint height=10000;for(int i=1;i<=10;i++) {height=height>>1;System.out.println("第"+i+"次反弹,高度是:"+height);}}}

6. 水仙花数

public class Flour {public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=100;i<1000;i++) {if(i==(i%10)*(i%10)*(i%10)+(i/100)*(i/100)*(i/100)+(i/10%10)*(i/10%10)*(i/10%10)) {System.out.println("水仙花数:"+i);}}}}

7. 数的排列

import java.util.Scanner;
public class Rannge {public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);int num1=in.nextInt();int num2=in.nextInt();in.close();if(num1 >= num2) {System.out.println("num1="+num1);System.out.println("num2="+num2);}else {System.out.println("num2="+num2);System.out.println("num1="+num1);}}}

8.计算中断

public class Break {public static void main(String[] args) {// TODO Auto-generated method stubint sum = 0;for(int i=0;i<=100;i++) {if(i%10==3) {break;}sum+=i;}System.out.println("加和1~100,直到遇到个位数字是3的数字就中断加和操作:sum="+sum);}}

9. 跳数计算

public class CLSS_ch2 {public static void main(String[] args) {// TODO Auto-generated method stubint sum=0;int i=1;while(i<=100) {if(i%10==3) {continue;}sum+=i;i++;}System.out.println("sum="+sum);}}

10. 打印10*10表格

public class PrintTable {public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=0;i<10;i++) {for(int j=0;j<10;j++){System.out.printf("("+i+","+j+")");}System.out.println("");}}
}

11.数组的综合应用2

public class TestFind {public static void main(String[] args) {// TODO Auto-generated method stubint[] array= {12, 34, 1, 4, 7, 90, 40, 100, 56, 79};int max=array[0];int min=array[0];for(int i=0;i<array.length;i++) {if(max<array[i]) {max=array[i];}if(min>array[i]) {min=array[i];}}System.out.println("数组中最大值max="+max);System.out.println("数组中最小值min="+min);}}

12. 接口实现

public class AppearTime  {interface Iclear{public  abstract  void clear() ;}class Myclear implements Iclear{@Overridepublic void clear() {// TODO Auto-generated method stub{System.out.println("do clear");}}}public static void main(String[] args) {// TODO Auto-generated method stubAppearTime.Myclear am = new AppearTime().new Myclear();am.clear();}}

13. 数值排序

import java.util.Random;public class ListNum {public static void main(String[] args) {Random r = new Random();int arr[] = new int [10]; for(int i=0 ; i<10;i++)arr[i]=r.nextInt(100);buble(arr);for(int i=0 ; i<10;i++)System.out.print(arr[i]+" ");}public  static void buble(int arr[]) {// TODO Auto-generated method stubfor(int i=0;i<arr.length;i++) {for(int j =0;j<arr.length-1-i;j++) {if(arr[j]>arr[j+1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}
}

14. 引用学生对象

public class Student {private String name;private int age;private boolean sex;private int score;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public boolean isSex() {return sex;}public void setSex(boolean sex) {this.sex = sex;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}public Student(String name, int age, boolean sex, int score) {super();this.name = name;this.age = age;this.sex = sex;this.score = score;}public Student() {super();// TODO Auto-generated constructor stub}public static void main(String[] args) {Student stu01 = new Student("诸葛亮",42,true,120);Student stu02 = stu01 ;Student stu03 = new Student("诸葛亮",42,true,120);System.out.println("通过对象赋值与原变量是否相等"+stu01.equals(stu02));System.out.println("属性完全相等,但分别实例化两个"+stu01.equals(stu03));}
}

15. 捕捉数值转型异常

import java.util.Scanner;public class FormatExceptionDemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数");String sb = sc.nextLine();int num = -1;try {num = Integer.parseInt(sb);sc.close();}catch (Exception e) {// TODO: handle exceptionSystem.out.println("输入内容不是整数!");System.exit(0);}System.out.println(num);}
}

16. 情人节献花

import java.util.Scanner;
public class TestRose {public static void main(String[] args) {// TODO Auto-generated method stubRose r = new Rose(1000);Scanner sc = new Scanner(System.in);while(true) {System.out.print("你要送给女朋友多少朵玫瑰花:");try {r.giveRose(sc.nextInt());} catch (RoseException e) {sc.close();System.exit(0);}finally {System.out.println("我爱你!");}}}}class Rose{private int RoseNumber;public int getRoseNumber() {return RoseNumber;}public void setRoseNumber(int roseNumber) {RoseNumber = roseNumber;}public Rose(int RoseNumber) {this.RoseNumber = RoseNumber;}public void giveRose(int rose) throws RoseException{if(rose>RoseNumber) {throw new RoseException();}else if(rose<=0){System.out.println("方法接受到非法参数,请给出正数形式的玫瑰花数");}else {RoseNumber -= rose;System.out.println("亲爱的,送你"+rose+"朵玫瑰花!");}}}class RoseException extends Exception{private static final long serialVersionUID = 5965711409217611710L;public RoseException() {System.out.println("我没有钱买花送给你,对不起!");}}

17. 加减乘除功能函数

public class Utils {public static int add(int num1 ,int num2) {return num1+num2;}public static int substract(int num1 ,int num2) {return num1-num2;}public static int multiplyt(int num1 ,int num2) {return num1*num2;}public static double division(double num1 ,double num2) {if(num2 == 0)System.out.println("除数不能为零");return num1/num2;}public static void main(String[] args) {int num1= 4;int num2= 3;int addtion=add(4,3);int sub = substract(4,3);int mul = multiplyt(4, 3);double div = division(4, 3);System.out.println("a的值是3,b的值是4");System.out.println("a+b="+addtion);System.out.println("a-b="+sub);System.out.println("a*b="+mul);System.out.println("a/b="+div);}
}

18. 我是歌手

package cn.campsg.java.experiment;
import cn.campsg.java.experiment.entity.*;
public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stubAbstractSinger s =  new PopSinger();s.introduce();s.sing();}}package cn.campsg.java.experiment.entity;public abstract class AbstractSinger {public void introduce() {System.out.println("Hello,我是歌手");} ;public abstract void sing();}package cn.campsg.java.experiment.entity;public class PopSinger extends AbstractSinger {public void sing() {// TODO Auto-generated method stubSystem.out.println("我是唱流行乐的");}}

19.16版最大值最小值

package cn.campsg.java.experiment;import java.util.Scanner;public class Compare {public static void main(String[] args) {Scanner in=new Scanner(System.in);int[] array=new int[10];System.out.println("请连续输入10个数值,数值间用空格间隔:");for(int i=0;i<array.length;i++){array[i]=in.nextInt();}in.close();int max = array[0];int min = array[0];for(int i= 0 ;i<10;i++){if(max<array[i]) max = array[i];}for(int j = 0;j<10;j++) {if(min>array[j]) min = array[j];}System.out.println(" 数组中的最大值为"+max);System.out.println(" 数组中的最小值为"+min);}}

19. 16版邮局派发信件

package cn.campsg.java.experiment;import cn.campsg.java.experiment.entity.Postman;
import cn.campsg.java.experiment.entity.SendMails;public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("邮递员接收派发任务后开始送信:");for(int i=0;i<5;i++){int mCount = (int)(1+Math.random()*10);Postman postman = new Postman("邮递员"+i,mCount/2);SendMails sendMails = new SendMails();sendMails.setPost(postman);new Thread(sendMails).start();}}}package cn.campsg.java.experiment.entity;public class SendMails extends Thread {
private Postman post;public Postman getPost() {return post;
}public void setPost(Postman post) {this.post = post;
}
public void run() {int count = 0;while(post.getMailCount() >0) {System.out.println( post.getPostName() +" 还有"+post.getMailCount()+ "封信。开始送第 " + (++count) + "封信!");try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}post.setMailCount(post.getMailCount()-1); if(post.getMailCount()<=0)System.out.println( "已完成所有邮件派送!"+post.getPostName()); }}
}package cn.campsg.java.experiment.entity;public class SendMails extends Thread {
private Postman post;public Postman getPost() {return post;
}public void setPost(Postman post) {this.post = post;
}
public void run() {int count = 0;while(post.getMailCount() >0) {System.out.println( post.getPostName() +" 还有"+post.getMailCount()+ "封信。开始送第 " + (++count) + "封信!");try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}post.setMailCount(post.getMailCount()-1); if(post.getMailCount()<=0)System.out.println( "已完成所有邮件派送!"+post.getPostName()); }}
}

20. 简易体脂称

package cn.campsg.java.experiment;import java.util.Scanner;public class BodyFat {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入您的身高(单位:米):");float height = scanner.nextFloat();System.out.println("请输入您的体重(单位:千克):");float weight = scanner.nextFloat();System.out.println("请输入您的年龄:");int age = scanner.nextInt();float BMI = weight/(height*height);float bodyFat = (float) (1.2*BMI+ 0.23*age-5.4);System.out.println("您的体脂率为:"+ bodyFat+"%");}}

21. 16版图形计算

package cn.campsg.java.experiment;import cn.campsg.java.experiment.impl.SquareCalImpl;public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stub//实例化正方形的接口对象SquareCalImpl sc = new SquareCalImpl();//设置正方形的边长sc.setLength(5.0f);//计算正方形的周长System.out.println("正方形的周长为:"+sc.calcPerim());//计算正方形的面积System.out.println("正方形的面积为:"+sc.calcArea());}}package cn.campsg.java.experiment;public interface ShapeCalc {public float calcPerim();public float calcArea();
}package cn.campsg.java.experiment.impl;import cn.campsg.java.experiment.ShapeCalc;public class SquareCalImpl implements ShapeCalc{private float length;public float getLength() {return length;}public void setLength(float length) {this.length = length;}public float calcPerim() {float peri = length * 4 ;return peri;}public float calcArea() {float area= length * length ;return area;}
}

22. 16版邮寄包裹

package cn.campsg.java.experiment;import java.util.Scanner;public class TestPost {public static boolean checkPost(float weight, float leng,float width,float height) {boolean flag = false;	if(weight>=200||leng>200||width>200||height>200) {flag =true;}return flag;  }public static double getMoney(double weight) {double money;money= weight>=200?(2+(weight-1)*0.7):(weight>=150?(2+(weight-1)*0.75):2+(weight-1)*0.8);return money;}public static void main(String[] args) {System.out.println("输入包裹的重量(kg)");Scanner sc = new Scanner(System.in);int weight = sc.nextInt();System.out.println("输入包裹长度(cm)");Scanner sc1 = new Scanner(System.in);int chang = sc1.nextInt();System.out.println("输入包裹宽度(cm)");Scanner sc2 = new Scanner(System.in);int kuan = sc2.nextInt();System.out.println("输入包裹高度(cm)");Scanner sc3 = new Scanner(System.in);int gao = sc3.nextInt();if( checkPost(weight,chang,kuan,gao)) {System.out.println("该包裹不符邮寄规定!");}else {double money= getMoney(weight);System.out.println("邮寄费用"+money+"元");}System.out.println("邮寄重量是"+weight+"(kg)");}}

23. 16版 1000内的完数

package cn.campsg.java.experiment;public class PerfectNum {public static void main(String[] args) {for (int i = 1; i <= 1000; ++i) {int sum = 0;for(int j = 1; j < i; ++j){if(i % j == 0)sum += j;}if(i == sum){System.out.println(i);}}}
}

24. 16版 统计年龄

package cn.campsg.java.experiment;public class MainClass {public static  int[] getAges(int ages[]) {for(int i =0;i<200;i++) {int age = (int) (Math.random() * 61);ages[i] = age;}return ages;}public static int getAdultCount(int[] ages) {int j =0;for(int i =0;i<200;i++) {if(ages[i]>=18) {j++;}}return j;}public static void main(String[] args) {int ages[] = new int[200] ;getAges(ages);int num = getAdultCount(ages);System.out.println(num);}}

25. 16版真实员工数统计

package cn.campsg.java.experiment;public class Employee {String no;String name;float salary;String department;public String getNo() {return no;}public void setNo(String no) {this.no = no;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(float salary) {this.salary = salary;}public String getDepartment() {return department;}public void setDepartment(String department) {this.department = department;}public Employee(String no2, String name2, String string, float f) {// TODO Auto-generated constructor stubthis.no = no2;this.name = name2;this.salary = f;this.department = string;}public boolean equals(Object o) {boolean flag = true;if(!(o instanceof Employee))flag=false;Employee emp = (Employee)o;//员工的工号不一致,则认定两个员工的业务数据不一致if(!emp.getNo().equals(this.getNo()))flag= false;return flag;}@Overridepublic String toString() {StringBuffer str = new StringBuffer();//String b = "Employee [no=" + no + ", name=" + name + ", salary=" + salary + ", department=" + department + "]";str.append(no).append(name).append(salary).append(department);return str.toString();}}package cn.campsg.java.experiment;
import cn.campsg.java.experiment.Employee;public class MainClass {public static boolean isRepeat(int index,Employee[] employees) {Employee emp = employees[index];for(int i = 0;i < employees.length; ++i) {if(emp == employees[i]) {continue;}if(emp.equals(employees[i]) == true) {return true;}}return false;}public static void main(String argv[]) {Employee[] employees = new Employee[3];employees[0] = new Employee("1001","张一","销售部",5000.0f);employees[1] = new Employee("1002","王二","销售部",6500.0f);employees[2] = new Employee("1001","Alan","研发部",15000.0f);int count = 0;for(int i=0;i<employees.length;++i){if(isRepeat(i,employees)==false){count++;System.out.println(employees[i].toString());}}System.out.println("本公司有效员工数: "  + count);}}

26. 交换位置

package diyiti;public class nizhi {public static void main(String[] args) {// TODO Auto-generated method stub/*定义一个类,类中定义两个静态方法和main方法。其中一个静态方法用于对一维数组中的数据进行逆序交换(即:数组中的第一个数与最后一个数交换位置,第二个数与倒数第二个数交换位置,以此类推),方法的参数为一维数组,返回类型为void;另一个静态方法用于输出数组元素。在main方法中对定义的两个静态方法进行测试,测试使用的数组的元素为:{34,28,75,9,28,56,80,17,8 }。*/int[]arr= {34,28,75,9,28,56,80,17,8 };System.out.println("数组原始数据为:");for( int i=0;i<arr.length;i++) System.out.print(arr[i]+" ");System.out.println();array(arr);abc(arr);}public static void array(int []arr) {int n;for(int i=0;i<(arr.length-1)/2;i++) {n=arr[i];arr[i]=arr[arr.length-1-i];  arr[arr.length-1-i]=n;}}static void abc(int []arr) {System.out.println("逆序运算后数组数据为:");for( int i=0;i<arr.length;i++) System.out.print(arr[i]+" ");}
}

27. 九九乘法

package diyiti;public class 九九 {public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=0;i<10;i++) {for(int j=0;j<=i;j++) {System.out.print(j+"*"+i+"="+i*j+" ");if(i==j)System.out.println("");}}}}
 /*请按以下要求设计一个日期类MyDate,并进行测试。
(1)MyDate类中包含三个属性,分别表示日期的年、月、日,访问权限为私有的;
(2)为每个属性定义相应的get和set方法,要求月份范围为1~12;
(3)为MyDate类定义默认构造方法和带参数构造方法,要求月份范围为1~12;
(4)定义一个方法判断当前日期的年份是否闰年,是闰年返回true,否则返回false。
方法参考格式为:public boolean isLeapYear()。
若年份能被400整除或能被100整除但不能被4整除,则年份为闰年;
(5)定义一个方法输出MyDate对象的信息;
(6)定义一个测试类,在测试类中创建两个MyDate对象,一个使用默认构造方法,
然后调用相应的方法给对象属性赋值,另一个使用带参数构造方法,
在构造方法中对属性赋值。分别输出两个对象的信息,并判断对象是否为闰年*/
public class MyDate {private int year,month,day;public int getYear() {return year;}public void setYear(int year) {this.year = year;}public int getMonth() {if (month>=1&&month<=12) {return month;}else {return 0;}}public void setMonth(int month) {this.month = month;}28. 随机生成转换
mport java.util.Random;public class JavaAPI {public static void main(String[] args) {// TODO Auto-generated method stub/*编写一个Java application,完成如下任务:(1)利用Java API类Random的nextFloat()方法随机生成一个成绩(成绩的值在0~100之间);(2)输出此成绩,要求保留小数点后两位;(3)利用switch语句将此成绩转换为等级。转换规则如下成绩>=90     优90>成绩>=80  良80>成绩>=70  中70>成绩>=60  及格成绩<60      不及格(4)程序运行效果如下图所示*/float score=0;Random in=new Random(100);//float score=in.nextFloat();System.out.println(String.format("%.2f",in.nextFloat()*100));int num=(int)score;switch(num/10) {case 9:System.out.println("成绩为优");break;case 8:System.out.println("成绩为良");case 7:System.out.println("成绩为中");case 6:System.out.println("成绩为合格");default:System.out.println("成绩为不合格");}}}

29. 圆的面积

/*请按以下要求设计一个圆类Circle,并进行测试。
(1)Circle类中包含三个属性,分别表示圆心坐标和半径,访问权限为私有的;
(2)为每个属性定义相应的get和set方法;
(3)为Circle定义默认构造方法和带参数构造方法;
(4)定义一个方法输出Circle对象的信息;
(5)定义一个方法求圆的面积;
(6)定义一个测试类,在测试类中创建两个Circle对象,一个使用默认构造方法,
然后调用相应的方法给对象属性赋值,另一个使用带参数构造方法,
在构造方法中对属性赋值。分别输出两个对象的信息及其面积。*/
public class Circle {private double x,y,r;public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}public double getR() {return r;}public void setR(double r) {this.r = r;}public Circle() {}public Circle(double x,double y ,double r) {this.x=x;this.y=y;this.r=r;}public void jisuan() {double area=0;area=r*r*3.14;System.out.println("面积为:"+area);}public static void main(String[] args) {Circle ab=new Circle(2,4,5);Circle abc=new Circle();System.out.println(ab.getX()+" "+ab.getY()+" "+ab.getR());ab.jisuan();}

30.类的继承

设计一个学生类Student和它的一个子类UnderGraduate。 在主函数中,通过带参构造方法创建一个新的Student类的对象stu(张三,20)和UnderGraduate对象ugrd(李四,21,计算机),并分别调用这两个对象的show方法。

public class Student {String name;int age;public Student(){}public Student(String name,int age){this.name=name;this.age=age;}public void show(){System.out.println("姓名:"+this.name+"  年龄:"+this.age);}
}public class UnderGraduate extends Student{String major;public UnderGraduate(){}public UnderGraduate(String name,int age,String major){super(name, age);this.major = major;}public void show(){System.out.println("姓名:"+this.name+"  年龄:"+this.age+"  专业:"+this.major);}
}public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stubStudent stu=new Student("张三",20);UnderGraduate ugrd=new UnderGraduate("李四",21,"计算机");stu.show();ugrd.show();}}

30. 类和接口编程

推荐步骤:
1.新建工程。
2.在工程中创建一个Person接口,该接口具有void setData(String n, String name, String sex)方法和String introduce()方法。
3.创建类Student实现Person接口,Student类中应当有String n, String name, String sex三个属性。
4.在Student类中实现setData方法,通过该方法将参数值赋给类相应的成员属性。
5.在Student类中实现introduce方法,该方法的返回值为将上述三个成员属性的字符串相连接。
6.创建主类MainClass,创建主函数main。
7.在主函数中,创建Student类的对象,并依次调用setData方法和introduce方法,将introduce方法的返回值输出至控制台。
public interface Person {void setData(String n, String name, String sex);String introduce();
}public class Student implements Person{String n;String name;String sex;public void steData(String n,String name,String sex){this.n=n;this.name=name;this.sex=sex;}public String introduce(){return "学号:"+this.n+"\n姓名:"+this.name+"\n性别:"+this.sex;}public void setData(String n, String name, String sex) {}}public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stubStudent student =new Student();student.steData("01","孙阳","男");System.out.println(student.introduce());}}

70. 利用接口实现多态

推荐步骤:
1.新建工程,名称为COMPUTATION。
2.在工程中创建一个接口,名称为Shape,内有一个名为perimeter的方法,该方法的返回值类型为float3.创建类,名称为Square,实现Shape接口,并有一个float型的成员变量,名称为a,定义Square类有一个参数的构造方法,该方法可以为a赋初值。
4.在Square类中实现perimeter方法,计算正方形周长,公式为周长=4*a,将计算结果作为perimeter方法的返回值。
5.使用同样方法创建Rou类,实现Shape接口,有一个float的成员变量,名称为r,定义Rou类有一个参数的构造方法,该方法可以为r赋初值。
6.在Rou类中实现perimeter方法,计算圆的周长,公式为周长=2*3.14*r,将计算结果作为perimeter方法的返回值。
7.创建主类MainClass,创建主函数main。
8.在主类中创建public static float getPerimeter(Shape s){}方法,该方法可以返回参数对象的周长。
9.在主类中分别创建一个Square类和Rou类的对象,使用构造方法对成员a和r任意复值,使用getPerimeter方法得到两个对象的周长,并输出至控制台。
public interface Shape {float perimeter();
}public class Square implements Shape{float a;public Square(){}public Square(float a){this.a=a;}public float perimeter(){float perimeter=4*a;return perimeter;}
}public class Rou implements Shape{float r;public Rou(){}public Rou(float r){this.r=r;}public float perimeter(){float perimeter=(float)(2*3.14*r);return perimeter;}
}public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stubSquare square=new Square(3);Rou rou=new Rou(4);System.out.println(getPerimeter(square));System.out.println(getPerimeter(rou));}public static float getPerimeter(Shape s){return s.perimeter();}
}

71. 利用接口实现多态

推荐步骤:
1.新建工程,名称为COMPUTATION。
2.在工程中创建一个接口,名称为Body,内有一个名为volumn的方法,该方法的返回值类型为float3.创建类,名称为Cube,实现Body接口,并有一个float型的成员变量,名称为a,定义Cube类有一个参数的构造方法,该方法可以为a赋初值。
4.在Cube类中实现volumn方法,计算立方体体积,公式为面积=a*a*a,将计算结果作为volumn方法的返回值。
5.使用同样方法创建Ball类,实现Body接口,有一个float的成员变量,名称为r,定义Ball类有一个参数的构造方法,该方法可以为r赋初值。
6.在Ball类中实现volumn方法,计算球体体积,公式为面积=4/3*3.14*r*r*r,将计算结果作为volumn方法的返回值。
7.创建主类MainClass,创建主函数main。
8.在主类中创建public static float getVolumn(Body b){}方法,该方法可以返回参数对象的体积。
9.在主类中分别创建一个Cube类和Ball类的对象,使用构造方法对成员a和r任意复值,使用getVolumn方法得到两个对象的体积,并输出至控制台。
public interface Body {float volumn();
}public class Cube implements Body{float a;public Cube(){}public Cube(float a){this.a=a;}public float volumn(){float volumn=a*a*a;return volumn;}
}public class Ball implements Body{float r;public Ball(){}public Ball(float r){this.r=r;}public float volumn(){float volumn=(float)(4/3*3.14*r*r*r);return volumn;}
}public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stubCube cube=new Cube(3);Ball ball=new Ball(4);System.out.println(getVolumn(cube));System.out.println(getVolumn(ball));}public static float getVolumn(Body b){return b.volumn();}
}

72. 利用接口实现多态

推荐步骤:
1.新建工程,名称为COMPUTATION。
2.在工程中创建一个接口,名称为Body,内有一个名为volumn的方法,该方法的返回值类型为float3.创建类,名称为Cube,实现Body接口,并有一个float型的成员变量,名称为a,定义Cube类有一个参数的构造方法,该方法可以为a赋初值。
4.在Cube类中实现volumn方法,计算立方体体积,公式为面积=a*a*a,将计算结果作为volumn方法的返回值。
5.使用同样方法创建Ball类,实现Body接口,有一个float的成员变量,名称为r,定义Ball类有一个参数的构造方法,该方法可以为r赋初值。
6.在Ball类中实现volumn方法,计算球体体积,公式为面积=4/3*3.14*r*r*r,将计算结果作为volumn方法的返回值。
7.创建主类MainClass,创建主函数main。
8.在主类中创建public static float getVolumn(Body b){}方法,该方法可以返回参数对象的体积。
9.在主类中分别创建一个Cube类和Ball类的对象,使用构造方法对成员a和r任意复值,使用getVolumn方法得到两个对象的体积,并输出至控制台。
public interface Body {float area();
}public class Cube implements Body{float a;public Cube(){}public Cube(float a){this.a=a;}public float area(){float area=6*a*a;return area;}
}public class Ball implements Body{float r;public Ball(){}public Ball(float r){this.r=r;}public float area(){float area=(float)(4*3.14*r*r);return area;}
}public class MainClass {public static void main(String[] args) {// TODO Auto-generated method stubCube cube=new Cube(3);Ball ball=new Ball(4);System.out.println(getArea(cube));System.out.println(getArea(ball));}public static float getArea(Body b){return b.area();}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部