BUAA_OOpre_4
Lecture 4 Java程序的Bug分析与调试
多种输入指令的处理:
一个自然而然地想法是这样的:
12345678910111213141516171819202122import java.util.Scanner public class MainClass(){ public static void main(String[] args) { Scanner scanner = new scanner(System.in); int n = scanner.nextInt(); //表示接下来有n条指令 for (int i = 0; i < n; i++) { int instruction = scanner.nextInt(); switch (instruction) { case 1 : command1(); br ...
BUAA_OOpre_3
Lecture 3 继承与接口使用
继承:
继承是类之间的一种抽象层次关系
继承让子类获得父类的属性和方法,实现复用和扩展
继承可以把多个类中的重复内容提取出来形成父类,减少冗余和增强可维护性
继承在Java中的语法:
(1)extends关键词:Java通过关键字extends来定义继承关系
(2)super关键词:子类通过super.attribute引用父类的非私有属性,通过super.methodName()调用父类实现的方法
(3)父类中public和protected类型的成员可以被子类直接访问,private成员需要通过方法访问
(4)Java仅支持单继承,即一个类最多只能有一个父类
方法重写:
(1)子类重新实现父类已有的方法被称为方法重写(override),重写要求方法名称,参数(个数,顺序,类型)和返回类型均保持一致,这样既保持了类的抽象层次,又实现了子类的独有行为
(2)方法重写的访问权限:
重写方法的visibility范围必须大于等于父类的方法
(3)方法重写的返回类型:
若父类方法返回基本类型,则重写方法只能与其保持一致
若父类方法返回 ...
BUAA_OOpre_2
Lecture 2 编写类与单元测试
类的基础:
类是一种自定义的数据类型,包含数据以及操作数据的方法
12345678910public class Person{ // 属性:定义类要管理的数据 private final int age; private final String name; // 方法:定义类要提供的行为 public void printBasicInfo() { System.out.printf("Hi, my name is %s, I am %d",name , age); }}
Java程序有多个类,拥有main方法的被称为主类,一般不设置属性
123public static void main(String[ ] args){ // 程序入口}
main方法是程序入口,main方法一般不做具体的业务处理,而是把输入请求交给业务类进行处理,业务类按照业务类别封装了业务数据和处理行为;
类的构造:
(1)类,属 ...
BUAA_OOpre_1
Lecture 1 Java程序入门与代码管理
面向对象是一种以对象为中心来构建程序逻辑的方法;
程序逻辑:数据及其关系 + 行为及其关系
类与对象:
面向对象语言使用“类”(class)这个概念来抽象化“对象”,一个类可以实例化出任意数量的对象,对象包含了数据和行为
Java程序中类由属性和方法组成,其中属性定义了数据结构,方法定义了对数据结构的操作函数
每个类都有一种构造方法用以实例化对象,而所谓构造方法则是指初始化该类的属性变量,然后返回对象指针
类的名称与相应文件的名称必须一致,一般一个Java文件只定义一个类
封装,继承,多态:
(1)封装: 提供清晰的接口,让类的内部复杂性外部不可见;
类封装了数据和方法,通过可见性来限制外部对内部数据和方法的访问
改变类的内部实现细节不影响类的使用者的使用
(2)继承: 建立类之间的抽象层次来协同降低复杂性;
子类从父类中获得属性和方法的机制
子类可以获得父类的设计与实现,从而实现复用
子类可以对父类进行拓展
(3)多态:类通过提供多种形态方法来解耦复杂度;
解藕了类针对同一个指令的多种处理逻辑,面向对象语言提 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment