1.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法voidprintCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然后写一个类Print实现接InterfaceA和InterfaceB,要求printCapitalLetter()方法实现输出大写英文字母表的功能,printLowercaseLetter()方法实现输出小写英文字母表的功能。再写一个主类E,在主类E的main方法中创建Print的对象并赋值给InterfaceA的变量a,对象a调用printCapitalLetter方法;最后再在主类E的main方法中创建Print的对象并赋值给InterfaceB的变量b,对象b调用printLowercaseLetter方法
//InterfaceA接口
public interface InterfaceA {
void printCapitalLetter();
}
//InterfaceB接口
public interface InterfaceB {
void printLowercaseLetter();
}
public class Print implements InterfaceA, InterfaceB {
@Override
public void printLowercaseLetter() {
System.out.println("ABCDEFGHIJKLMNOPQISTUVWXYZ");
}
@Override
public void printCapitalLetter() {
System.out.println("abcdefghijklmnopqistuvwxyz");
}
}
public class E {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//给Print创建对象,并调InterfaceA的接口
Print a = new Print();
a.printCapitalLetter();
//给Print创建对象,并调InterfaceB的接口
Print b =new Print();
b.printLowercaseLetter();
}
}
2.按要求编写Java程序:
(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);
(2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方法时,要求计算1到n的和;
(3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口方法时,要求计算n的阶乘(n!);
(4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现。
public interface InterfaceA2 {
int method(int n);
}
//接口的实现
public class ClassA implements InterfaceA2 {
int sum =0;
public int method(int n) {
// TODO 自动生成的方法存根
for(int i =1;i<n;i++)
{
sum+=i;
}
System.out.println("1+2+3+4......+n="+sum);
return sum;
}
}
public class ClassB implements InterfaceA2 {
int sum=0;
public int method(int n) {
// TODO 自动生成的方法存根
for(int i =1;i<n;i++)
{
sum*=i;
}
System.out.println("1*2*3*4.....*n ="+sum);
return sum;
}
}
public class E2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//声明接口变量
InterfaceA2 a;
//实例化接口对象中存放对象的引用
a = new ClassA();
//接口回调
a.method(6);
//实例化接口对象中存放对象的引用
a=new ClassB();
//接口回调
a.method(7);
}
}
3.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。
要求如下:
(1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中有个“坚持党的领导”方法:void partyLeader()
(2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安全生产”的抽象方法:abstract void safetyInProduction()
(3)该应用程序中有一个“省政府”类:Province,该类继承StateCouncil抽象类并且实现CentralPartyCommittee接口;在实现partyLeader()方法时输出“我们各省人民一定坚持党的领导!”;在重写safetyInProduction()方法时输出“我们各省人民一定按照国务院的指示进行安全生产!”。
(4)该应用程序中有一个主类E,在主类E的main方法中创建Province类的对象,来测试Province类的功能。
public interface CentralPartyCommittee {
void partyLeader();
}
//定义一个抽象类
public abstract class StateCouncil {
abstract void safetyInProduction();
}
//继承抽象类并实现该接口
public class Province extends StateCouncil implements CentralPartyCommittee {
@Override
public void partyLeader() {
System.out.println("我们各省人民一定坚持党的领导!");
}
@Override
void safetyInProduction() {
System.out.println(" 我们各省人民一定按照国务院的指示进行安全生产!");
}
}
public class E3 {
public static void main(String[] args) {
Province a = new Province();
a.partyLeader();
a.safetyInProduction();
}
}
4.看下图实现如下接口和类,并完成Adventure中的主方法。
//能飞的接口
public interface CanFly {
void fly();
}
//游泳的接口
public interface CanSwim {
void swim();
}
public abstract class ActionCharacter {
//抽象方法
public abstract void finght(String emp);
//已经实现的方法
public void speak(String s)
{
System.out.println(s);
}
}
//继承并实现父类中所有的方法
public class Hero extends ActionCharacter implements CanSwim, CanFly {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void fly() {
System.out.println(name+"能飞");
}
@Override
public void swim() {
System.out.println(name+"能游");
}
@Override
public void finght(String emp) {
System.out.println(name+"还能打");
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Hero hb = new Hero();
hb.setName("大飞");
hb.swim();
hb.finght("是");
hb.fly();
//声明CanFly类型变量cf
CanFly cf;
//将hb的值赋给cf
cf =hb;
//用cf调用fly方法
cf.fly();
CanSwim cs;
cs=hb;
cs.swim();
ActionCharacter ac;
ac=hb;
ac.speak("说");
ac.finght("打");
}
}
5.利用接口做参数,写个计算器,能完成+-*/运算
(1)定义一个接口Compute含有一个方法int computer(int n,int m);
(2)设计四个类分别实现此接口,完成+-*/运算
(3)设计一个类UseCompute,含有方法:
public void useCom(Compute com, int one, int two)
此方法要求能够:1.用传递过来的对象调用computer方法完成运算
.输出运算的结果
(4)设计一个测试类,调用UseCompute中的方法useCom来完成+-*/运算
//定义一个接口
public interface Compute {
int computer(int n,int m);
}
//实现接口的类
public class Jian implements Compute {
@Override
public int computer(int n, int m) {
int jian =n-m;
System.out.println(n+"-"+m+"="+jian);
return jian;
}
}
public class Jia implements Compute {
@Override
public int computer(int n, int m) {
// TODO 自动生成的方法存根
int jia =n+m;
System.out.println(n+"+"+m+"="+jia);
return jia;
}
}
public class Cheng implements Compute {
@Override
public int computer(int n, int m) {
// TODO 自动生成的方法存根
int cheng =n*m;
System.out.println(n+"*"+m+"="+cheng);
return cheng;
}}
public class Chu implements Compute {
@Override
public int computer(int n, int m) {
int chu =n/m;
System.out.println(n+"/"+m+" ="+chu);
return chu;
}
}
public class UseComputer implements Compute {
@Override
public int computer(int n, int m) {
// TODO 自动生成的方法存根
return 0;
}
public void useCom(Compute com, int n, int m)
{
com.computer(n, m);
}
}
public class TestUseComputer {
public static void main(String[] args) {
// TODO 自动生成的方法存根
UseComputer a = new UseComputer();
Jia a1 =new Jia();
Jian a2 = new Jian();
Cheng a3 = new Cheng();
Chu a4 = new Chu();
a.useCom(a1, 4, 7);
a.useCom(a2, 3, 5);
a.useCom(a3, 2, 8);
a.useCom(a4, 7, 1);
}
}