头歌Java实验面向对象高级

news/2024/9/23 20:18:07/

第1关:类的继承和super关键字

java">package step1;class Animal{String name;public void shout(){System.out.println(this.name + "发出叫声");}public Animal(String name) {this.name = name;}
}// ---------------------Begin------------------------
//编写Dog类继承Animal类,重写shout方法,增加superShout方法
class Dog extends Animal{public Dog(String name) {super(name);}public void shout(){System.out.println(this.name+"发出汪汪叫");}public void superShout(){super.shout();}
}// ---------------------End------------------------

第2关:final关键字改错

java">package step2;// ---------------------Begin------------------------class Person{int age;String name;public void sayHello(){System.out.println("nice to meet you.");}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
class  Student extends Person{@Overridepublic void sayHello() {System.out.println(String.format("Hey nice to meet you. I am a student, my name is %s. I am %d years old.", this.name, this.age));}}// ---------------------End------------------------
public class FinalKeyWord {public static void main(String[] args) {Student student = new Student();student.setAge(18);student.setName("张三");student.sayHello();}
}

第3关:抽象类

java">package step3;// ---------------------Begin------------------------abstract class Studenta {abstract void sayHello();
}
class Student extends Person {String name="jack";int age=18;public Student(int age,String name){super(age,name);}public  void sayHello() {System.out.println(String.format("大家好,我叫%s,今年%d岁,很高兴认识大家", this.name,this.age));}public static void main(String[] args) {
Student s=new Student();
s.sayHello();}
}// ---------------------End------------------------

第4关:接口

java">package step4;// ---------------------Begin------------------------interface MyInterface{void sayHi();}class InterfaceDemo implements Demo{public void show(){System.out.println("实现了接口中的show方法");}
}// ---------------------End------------------------

第5关:多态

java">package step5;// ---------------------Begin------------------------
class Cat extends Animal{public void shout(){System.out.println("小花猫喵喵叫");}
}
class Dog extends Animal{public void shout(){System.out.println("大黄狗汪汪叫");}
}class Pig extends Animal{public void shout(){System.out.println("大胖猪喊喊叫");}
}// ---------------------End------------------------class polymorphicDemo{public static void main(String[] args){Cat c = new Cat();Dog d = new Dog();method(c);method(d);method(new Pig());}public static void method(Animal a){a.shout();}}

第6关:匿名内部类

java">package step6;abstract class Demo{abstract void show();
}// ---------------------Begin------------------------class Outer{public void show(){System.out.println("外部类调用show方法");}void method(){new Demo(){void show(){System.out.println("内部类调用show方法");} }.show();}
}// ---------------------End------------------------

第7关:Lambda表达式

java">package step7;
import java.util.Scanner;interface Mycaculator{int add(int a, int b);
}public class LambdaTest {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int a = scanner.nextInt();int b = scanner.nextInt();// ---------------------Begin------------------------//lambad表达式实现Mycaculator接口完成两数相加并打印输出结果Mycaculator calculator = (x,y)->x+y;int result = calculator.add(a,b);System.out.print(result);// ---------------------End------------------------}
}

第8关:异常处理

java">package step8;public class ErrorHandle {public static void main(String[] args) {ErrorHandle errorHandle = new ErrorHandle();// ---------------------Begin------------------------//捕获errorSrc对象中divideTest方法中的除零异常(ArithmeticException),获取异常信息可以使用getMessage方法try{errorHandle.divideTest();}catch (ArithmeticException e){System.out.println("Exception Messaage:"+e.getMessage());}finally {System.out.println("/ by zero");System.out.println("成功捕获除零异常");}}
public void divideTest() {try {int result = 0 / 1; } catch (ArithmeticException e) {System.out.println("Exception Message: " + e.getMessage());throw e; }}
}

第9关:知识回顾

1c 2c 3c 4b 5bc


http://www.ppmy.cn/news/1437962.html

相关文章

C++及QT的线程学习

目录 一. 线程学习 二. 学习线程当中,得到的未知。 1. 了解以下MainWindow和main的关系 2. []()匿名函数 有函数体,没有函数名. 3. join和detach都是用来管理线程的生命周期的,它们的区别在于线程结束和资源的回收。 4. operator()() 仿…

深度学习每周学习总结P5(运动鞋识别)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 –来自百度网盘超级会员V5的分享 数据链接 提取码:9539 目录 0. 总结1. 数据导入及处理部分2. 加载数据集3.模型构建部分3.1…

问答机器人学习资料

longchain 5 分钟内搭建一个免费问答机器人:Milvus LangChain-腾讯云开发者社区-腾讯云 chatglm大模型 基于本地知识的问答机器人langchain-ChatGLM 大语言模型实现方法详解_python_脚本之家 探索QRobot:智能对话与聊天机器人的开源奇缘-CSDN博客 如何…

Python爬虫(入门版)

1、爬虫是什么 简单的来说:就是用程序获取网络上数据。 2、爬虫的原理 如果要获取网络上数据,我们要给爬虫一个网址(程序中通常叫URL),爬虫发送一个HTTP请求给目标网页的服务器,服务器返回数据给客户端&am…

kotlin根据文件的filePath转化为uri

方法实现 使用File类来创建一个文件对象,然后通过FileProvider来获取文件的URI import android.content.Context import android.net.Uri import androidx.core.content.FileProvider import java.io.Filefun getFileUri(context: Context, filePath: String): Ur…

1分钟掌握 Python 函数参数

任何编程语言函数都是非常重要的一部分,而在进行函数调用时,了解函数的参数传递方式是非常有必要的。Python中支持哪些传参方式呢? Python中的传参方式是比较灵活的,主要包括以下六种: 按照位置传参按照关键字传参默…

vue2知识点————(vue插槽,透传 Attributes )

vue 插槽 插槽(slot)是一种强大的特性,允许在组件的模板中定义带有特定用途的“插槽”,然后在组件的使用者中填充内容。插槽能够使组件更加灵活,让组件的结构更容易复用和定 具名插槽(Named Slots&#x…

Java openrasp记录-01

例子1 https://github.com/anbai-inc/javaweb-expression 一个hook ognl、spel、MVEL表达式注入的例子 用的是asm5进行字节码修改 采用premain进行插桩,重写transform方法 expClassList是要hook的类,这里定义在MethodHookDesc 这里判断hook点通过类名…