java方法之间的调用以及关系(了解95%)
第一题:
定义一个接口Animal,包含:
1.抽象方法: run()
2.默认方法: breathe(),输出"动物会呼吸",同时调用静态方法 eat(),私有方法: sleep()
3.静态方法: eat(),输出"动物都要吃东西"
4.私有方法: sleep(),输出"动物都要休息"
定义Dog类实现Animal接口,实现抽象方法run(),输出"狗跑得飞快"
在测试类中创建Dog类的对象d,通过对象调用run()方法和breathe()方法,打印出如下效果:
狗跑得飞快
动物会呼吸
动物都要吃东西
动物都要休息
Dog类:
public class Dog implements Animal{ @Override public void run() { System.out.println("狗跑的飞快"); } @Override public void breathe() { System.out.println("动物会呼吸"); } public void sleep() { System.out.println("动物都要休息"); } }
Animal 类:
public interface Animal { public abstract void run(); public void breathe(); static void eat(){ System.out.println("动物都要吃东西"); } static void sleep(){ System.out.println("动物都要休息"); } }
主方法:
public class Demo01{ public static void main(String[] args) { Animal d=new Dog(); d.run(); d.breathe(); Animal.eat(); Animal.sleep(); } }
第二题:
定义一个接口Phone,包含:
1.抽象方法: playGame()
2.默认方法: sendMessage(),输出"发短信"
3.静态方法: call(),输出"打电话"
定义IPhone类实现Phone接口,实现抽象方法playGame(),输出"打王者农药,吃鸡"
重写默认方法sendMessage(),输出"发彩信"
在测试类中,编写代码,打印出如下语句(每句话都需调用上述方法打印):
打电话
打王者农药,吃鸡
发彩信
Phone类:
public interface Phone { public abstract void playGame(); public default void sendMessage(){ System.out.println("发短信"); } public static void call(){ System.out.println("打电话"); } }
IPhone类:
public class IPhone implements Phone{ @Override public void playGame() { System.out.println("约和她皆失,你知道王者农药什么英雄吗?"); } @Override public void sendMessage() { System.out.println("发彩信"); } }
主方法:
public class Demo02 { public static void main(String[] args) { IPhone p = new IPhone(); Phone.call(); p.playGame(); p.sendMessage(); } }
第三题:
定义一个接口Animal,包含:
1.抽象方法:run()
2.默认方法: sleep(),输出"动物会休息"
定义一个Dog类,实现Animal接口,
实现抽象方法:run(),输出"如脱缰的野狗一样奔跑"
定义自己特有的方法: eat(),输出"狗吃屎"
定义一个Cat类,实现Animal接口,
实现抽象方法:run(),输出"奔跑的猫毛都被撸秃了"
定义自己特有的方法: catchMouse(),输出"猫抓老鼠"
在测试类中定义如下方法:
public static void printAnimal(Animal a){}
要求在方法中编写代码实现如下功能:
在主方法中:
1. Animal b = new Dog();
调用方法printAnimal()传入b对象,能在控制台输出:
如脱缰的野狗一样奔跑
动物会休息
狗吃屎
1. Animal c = new Cat();
调用方法printAnimal()传入c对象,能在控制台输出:
奔跑的猫毛都被撸秃了
动物会休息
猫抓老鼠
Animal类:
public interface Animal { public static void sleep(){ System.out.println("动物会休息"); } public abstract void run(); }
Dog类:
public class Dog implements Animal{ @Override public void run() { System.out.println("如脱缰的野狗一样奔跑"); } public static void eat(){ System.out.println("怎么对小动物哪麽不好呢,编辑!"); } }
Cat类:
public class Cat implements Animal{ @Override public void run() { System.out.println("奔跑的猫毛都被撸秃了?瞧你能追的上似的"); } public static void catchMouse(){ System.out.println("猫抓老鼠,天经地义"); } }
主方法:
public class Demo03{ public static void printAnimal(Animal a){ } public static void main(String[] args) { Animal b = new Dog(); printAnimal(b); b.run(); Animal.sleep(); Dog.eat(); Animal c = new Cat(); c.run(); Animal.sleep(); Cat.catchMouse(); } }
第四题:
根据要求完成以下功能:
① 定义接口Bluetooth,要求如下:
定义抽象方法: void btFunction()
定义默认方法: void connecting(),要求:输出"可以连接WIFI"
② 定义抽象类Phone,要求如下:
包含空参、满参构造和以下成员变量
名称name( String 型)
生成所有成员变量set/get方法
定义抽象方法:void playMusic(Song song)
③定义类Song
包含空参、满参构造和以下成员变量
歌手 singer(String 型)
歌名 name( String 型)
生成所有成员变量set/get方法
④ 定义类IPhone,要求如下:
继承抽象类 Phone,实现接口 Bluetooth
构造方法包括:空参构造和满参构造方法(String)
重写抽象方法:
void btFunction(),要求:输出"支持WIFI功能"
void playMusic(Song song),要求:输出打印"XXX手机正在播放YYY唱的ZZZ"
PS:XXX是Phone类中的 name属性值,YYY是Song 类中的 singer属性值,ZZZ是Song 类中的 name属性值
⑤ 定义测试类Test,在main方法实现以下功能:
创建并初始化一个IPhone 对象phone和一个Song 对象s,调用phone的 btFunction()、connecting()和playMusic(Song song)方法,打印如下:
支持WIFI功能
可以连接WIFI
华为手机正在播放周杰伦唱的菊花残
Bluetooth 类:
public interface Bluetooth { public static void btFunction() { } public static void connecting(){ System.out.println("可以连接WIFI,谁能把WIFI变为只能自己连"); } }
Phone类:
public abstract class Phone{ String name="华为"; public Phone(String name) { this.name = name; } public Phone() { } public abstract void playMusic(Song song); public String getName() { return name; } public void setName(String name) { this.name = name; } public abstract void playMusic(); }
Song 类:
public class Song extends Phone{ String singer="周杰伦"; String name="菊花残"; public Song(String singer, String name) { this.singer = singer; this.name = name; } public Song() { } @Override public void playMusic(Song song) { Song s=new Song(); s.setName("菊花残"); s.setSinger("周杰伦"); } public String getSinger() { return singer; } public void setSinger(String singer) { this.singer = singer; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public void playMusic() { System.out.println(name+"手机正在播放"+getSinger()+"唱的"+getName()); } }
IPhone 类:
public class IPhone extends Phone implements Bluetooth{ Song s=new Song(); public IPhone(String name) { this.name=name; } public IPhone() { } @Override public void playMusic(Song song) { System.out.println(name+"手机正在播放"+s.getSinger()+"唱的"+s.getName()); } @Override public void playMusic() { System.out.println(name+"手机正在播放"+s.getSinger()+"唱的"+s.getName()); } public static void btFunction() { System.out.println("支持WIFI功能"); } }
主方法:
public class Demo04 { public static void main(String[] args) { IPhone phone=new IPhone(); phone.btFunction(); Bluetooth.connecting(); phone.playMusic(); } }
第五题:
根据要求完成以下功能:
① 定义接口Study,要求如下:
定义抽象方法: void studyLine(Line line)
定义默认方法: void info(),要求:依次调用stu1(),stu2()
定义私有方法: void stu1 (),要求:输出"好好练习,天天向上"
void stu2 (),要求:输出"镜头拍烂,月薪百万"
②定义类Line,包含空参、满参构造和以下成员变量
基础班学习 basicClass(String 型)
就业班学习 emplymentClass(String 型)
生成所有成员变量set/get方法
定义成员方法:void printLine(),要求:输出"练习路线,基础班学习:xxx,就业班学习:yyy",
PS: xxx为变量basicClass值,yyy为变量emplymentClass值
③定义类Student,包含空参、满参构造和以下成员变量
姓名 name(String 型)
年龄 age(int型)
生成所有成员变量set/get方法
定义成员方法:void studying(Study sy),要求:输出“xxxx练习中”,然后在方法内依次调用info(),studyLine (Line line)
PS:xxx为变量name值,参数line需要自行创建并初始化变量basicClass与 emplymentClass
④ 定义测试类Test,在main方法实现以下功能:
创建并初始化一个Student对象stu,调用方法 studying(Study sy)
sy为Study的实现类,需要实现studyLine (Line line)抽象方法,实现要求:调用参数line的printLine()方法;
示例如下:
苍井空练习中
好好练习,天天向上
镜头拍烂,月薪百万
学习路线,基础班学习:JAVASE,就业班学习:JAVAEE
Line 类:
public class Line { static String basicClass="JAVASE"; static String emplymentClass="JAVAEE"; public Line(String basicClass, String emplymentClass) { this.basicClass = basicClass; this.emplymentClass = emplymentClass; } public Line() { } public static void printLine(){ System.out.println("练习路线,基础班学习:"+basicClass+",就业班学习:"+emplymentClass); } public String getBasicClass() { return basicClass; } public void setBasicClass(String basicClass) { this.basicClass = basicClass; } public String getEmplymentClass() { return emplymentClass; } public void setEmplymentClass(String emplymentClass) { this.emplymentClass = emplymentClass; } }
Study 类:
public interface Study { public abstract void studyLine(Line line); static void stu1(){ System.out.println("真是没什么话编辑了"); } static void stu2(){ System.out.println("这一天天的不能换换样"); } }
Student类:
public class Student{ private static String name="小卤蛋"; private static int age; public Student(String name, int age) { this.name = name; this.age = age; } public Student() { } public static void studying() { System.out.println(name+"练习中"); } public void studying(Study sy){ System.out.println(name+"练习中"); } 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 class Demo05 { public static void main(String[] args) { Line.printLine(); Study.stu1(); Study.stu2(); Student.studying(); } }
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Drink less late night wine and drink more early morning porridge! 快手(爱分享~淘气)
------------------------------------------------------------------
感谢到访!期待您的下次光临!