学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含
1、重写父类方法
- 描述:定义一个大学类,一个重点大学类继承大学类。在父类大学类中定义方法计算分数是否达到录取线,子类重点大学类重写父类方法,在主函数中输入三门成绩,调用重写的方法,判断总成绩是否达到录取线。总成绩大于等于180达到大学录取线,总成绩大于等于220达到重点大学录取线,否则达不到。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| import java.util.Scanner; class University {
void enterRule(double math,double english,double chinese) { double total=math+english+chinese; if(total>=180){ System.out.println("考分"+total+"达到大学最低录取线"); } else{ System.out.println("考分"+total+"未达到大学最低录取线"); } } } class ImportantUniversity extends University{
void enterRule(double math,double english,double chinese) { double total=math+english+chinese; if(total>=220){ System.out.println("考分"+total+"达到重点大学录取线"); } else{ System.out.println("考分"+total+"未达到重点大学录取线"); } } } public class Test{ public static void main(String args[]) { System.out.println("请输入数学、英语、语文成绩"); Scanner scanner = new Scanner(System.in); ImportantUniversity univer = new ImportantUniversity(); univer.enterRule(scanner.nextDouble(),scanner.nextDouble(),scanner.nextDouble()); System.out.println("请输入数学、英语、语文成绩"); univer = new ImportantUniversity(); univer.enterRule(scanner.nextDouble(),scanner.nextDouble(),scanner.nextDouble()); } }
|
2、输入两个数、分别计算这两个数的积、和
- 描述:在父类中定义求和方法和求积方法,子类继承父类并重写求积方法,在主函数中用子类调用这两个方法。输入两个数、分别计算这两个数的积、和。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| import java.util.Scanner; class A {
float computer(float x,float y) { return x+y; }
public int g(int x,int y) { return x+y; } } class B extends A {
float computer (float x,float y) { return x*y; } } public class Example5_5 { @SuppressWarnings("resource") public static void main(String args[]) { B b=new B(); System.out.println("请输入两个数计算乘"); Scanner scanner = new Scanner(System.in); float result=b.computer(scanner.nextFloat(),scanner.nextFloat()); System.out.println(result); System.out.println("请输入两个数计算和"); int m=b.g(scanner.nextInt(),scanner.nextInt()); System.out.println(m); } }
|
3、对输入的数字进行打印
- 描述:定义一个类A,包含一个返回空对象的方法。定义类B继承类A,父类方法的返回值为Object类型,子类重写方法可以返回父类的子类型。定义子类返回值为Integer类型,输入一个数,调用子类的方法,打印输出这个数。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import java.util.Scanner; class A { Object get() { return null; } } class B extends A { Integer get() { System.out.println("请输入一个数");
Scanner scanner = new Scanner(System.in); return new Integer(scanner.nextInt()); } } public class Example5_6 { public static void main(String args[]) { B b=new B(); Integer t=b.get(); System.out.println(t.intValue()); } }
|
4、计算一个数的平均数和1/2倍数
- 描述:定义一个父类Sum,一个子类Average继承Sum,子类使用super访问和调用隐藏的父类成员变量和方法,输入一个数n,计算1…n之和的平均数、2/1的倍数
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| import java.util.Scanner; class Sum { int n;
float f() { float sum=0; for(float i=1;i<=n;i++){ sum=sum+i; } return sum; } } class Average extends Sum { int n;
float f() { super.n=n; return super.f()/n; }
float g() { float temp=super.f()/2; return temp; } } public class Example5_7 { public static void main(String args[]) { Average aver=new Average(); System.out.println("请输入一个数n计算1..n和的平均数、2/1的倍数"); Scanner scanner = new Scanner(System.in); aver.n = scanner.nextInt(); float resultOne=aver.f(); float resultTwo=aver.g(); System.out.println("resultOne="+resultOne); System.out.println("resultTwo="+resultTwo); } }
|
5、对输入的字符串进行打印输出
- 描述:定义一个父类Student,子类UniverStudent继承父类,使用super调用父类构造方法,根据提示输入字符串,实例化一个子类对象并输出结果。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| import java.util.Scanner; class Student { int number;String name; Student() { }
Student(int number,String name) { this.number=number; this.name=name; System.out.println("我的名字是:" +name+ "学号是:"+number); } } class UniverStudent extends Student { String 婚否;
UniverStudent(int number,String name,String b) { super(number,name); 婚否=b; System.out.println("婚否="+b); } } public class Example5_8 { public static void main(String args[]) { System.out.println("请输入姓名:"); Scanner scanner = new Scanner(System.in); String next = scanner.next(); System.out.println("请输入年龄:"); int nextInt =scanner.nextInt(); System.out.println("请输入婚否:"); String next1 = scanner.next(); UniverStudent stud= new UniverStudent(nextInt,next,next1); } }
|
6、计算圆面积
- 描述:定义一个类A,包含常量PI,以及求圆面积的方法。输入半径的值,利用求圆面积方法计算面积,并输出结果。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import java.util.Scanner; class A { final double PI=3.1415926;
public double getArea(final double r) { return PI*r*r; } } public class Example5_9 { public static void main(String args[]) { A a=new A(); System.out.println("请输入圆半径:"); Scanner scanner = new Scanner(System.in); System.out.println("面积:"+a.getArea(scanner.nextDouble())); } }
|
7、输入字符串和两个数字,打印字符串并计算两个数乘积
- 描述:定义一个父类Anthropoid,子类People继承父类。实例化一个子类对象并向上转型,输入一个字符串和两个数字,父类对象调用子类的方法,打印输出字符串内容,和两个数字乘积。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| import java.util.Scanner; class Anthropoid { void crySpeak(String s) { System.out.println(s); } } class People extends Anthropoid { void computer(int a,int b) { System.out.println(a*b); } void crySpeak(String s) { System.out.println("***"+s+"***"); } } public class Example5_10 { public static void main(String args[]) { Anthropoid monkey; People geng = new People(); monkey = geng ; System.out.println("请输入字符串 "); Scanner scanner = new Scanner(System.in); monkey.crySpeak(scanner.next()); People people=(People)monkey; System.out.println("请输入两个数字:"); people.computer(scanner.nextInt(),scanner.nextInt()); } }
|
8、对输入的字符进行打印
- 描述:定义一个父类动物,子类猫、狗继承动物类。输入狗叫和猫叫的内容,利用多态,调用子类方法,输出狗猫叫的内容。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import java.util.Scanner; class animal { void cry(String call) { } } class dog extends animal { void cry(String call) { System.out.println(call); } } class cat extends animal { void cry(String call) { System.out.println(call); } } public class Example5_11{ public static void main(String args[]) { animal animal; animal = new dog(); System.out.println("请输入狗叫:"); Scanner scanner = new Scanner(System.in);
animal.cry(scanner.next()); animal=new cat(); System.out.println("请输入猫叫:");
animal.cry(scanner.next()); } }
|
9、对输入字符串打印
- 描述:定义一个抽象类GirlFriend,包含两个抽象方法。定义两个子类继承抽象类并实现抽象方法,定义一个类Boy,包含抽象类对象,以及调用抽象类的方法。获取输入的字符串,利用多态特性,分别调用两个子类的方法,打印输出字符串内容。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| import java.util.Scanner; abstract class GirlFriend { abstract void speak(Scanner scanner); abstract void cooking(Scanner scanner); } class ChinaGirlFriend extends GirlFriend { void speak(Scanner scanner){ System.out.println("请输入中国女孩说的话:"); System.out.println(scanner.next()); } void cooking(Scanner scanner){ System.out.println("请输入中国女孩做的饭:"); System.out.println(scanner.next()); } } class AmericanGirlFriend extends GirlFriend { void speak(Scanner scanner){ System.out.println("请输入美国女孩说的话:"); System.out.println(scanner.next()); } void cooking(Scanner scanner){ System.out.println("请输入美国女孩做的饭:"); System.out.println(scanner.next()); } } class Boy { GirlFriend friend; Scanner scanner = new Scanner(System.in); void setGirlfriend(GirlFriend f){ friend = f; } void showGirlFriend() { friend.speak(scanner); friend.cooking(scanner); } } public class Example5_12 { public static void main(String args[]) { GirlFriend girl = new ChinaGirlFriend(); Boy boy = new Boy(); boy.setGirlfriend(girl); boy.showGirlFriend(); girl = new AmericanGirlFriend(); boy.setGirlfriend(girl); boy.showGirlFriend(); } }
|
10、根据提示信息,输入移到、联通的手机号,然后输出卡的类型和手机号
- 描述:定义一个抽象类SIM,定义中国移动类和中国联通类继承SIM,定义一个手机类,包含使用SIM卡的方法,和显示卡信息的方法。利用多态性质,输入移动卡手机号,然后输出卡类型和手机号;输入联通卡手机号,然后输出卡类型和和手机号。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| import java.util.Scanner; abstract class SIM { public abstract void setNumber(String n); public abstract String giveNumber(); public abstract String giveCorpName(); } class SIMOfChinaMobile extends SIM { String number; public void setNumber(String n) { number = n; } public String giveNumber() { return number; } public String giveCorpName() { return "中国移动"; } } class SIMOfChinaUnicom extends SIM { String number; public void setNumber(String n) { number = n; } public String giveNumber() { return number; } public String giveCorpName() { return "联通"; } } class MobileTelephone { SIM card; public void useSIM(SIM card) { this.card=card; } public void showMess() {
System.out.println("使用的卡是:"+ card.giveCorpName() +"提供的"); System.out.println("手机号码是:"+ card.giveNumber()); } } public class Example5_13 { public static void main(String args[]) { MobileTelephone telephone = new MobileTelephone (); SIM sim=new SIMOfChinaMobile(); Scanner scanner = new Scanner(System.in); System.out.println("请输入移动卡手机号:");
sim.setNumber(scanner.next()); telephone.useSIM(sim); telephone.showMess(); sim=new SIMOfChinaUnicom(); System.out.println("请输入联通手机号:");
sim.setNumber(scanner.next()); telephone.useSIM(sim); telephone.showMess(); } }
|