内容讲解都在代码块注释里面,不懂的可以看我JavaSE版块里面的知识
Animal 考察对于类的书写
package Girl.study;
/*
* Java考试复习,首先明确会考什么,看了题之后大概就是考得
* 1、类的构造,这个是基础,你需要知道怎么写出来一个类,分别为类的属性、方法(又分构造方法、getter、setter方法)
* 注:这三个方法尽量都写上,只要不是抽象类和接口,都不会有问题的,无脑写就完了。
* 下面是对于写类的演示
* 设计一个Animal类,其中包括eat() sleep()方法
*
* */
public class Animal {
// 动物嘛 无非就两种属性(属性是什么不懂的可以看看我的博客的JavaSE版块的类和对象)
//注意此处的属性的限定符都是private 只能在本类中使用,这就是为什么写getter和setter方法的原因了
//就是为了使外部类能获得。(其实就是破坏封装,有那味了)
private String name;
private int age;
//构造方法!!!重点了解 没有返回值并且是public方法名和类名完全相同
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
//getter setter方法 背一下比较简单,我当时考试就写了八开纸正反面(手写)这个getter sttter方法占了大部分
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;
}
//之后我们写要求的方法
//这个name是在本类中使用,所以不必使用getter方法使用了也没错
public void eat() {
System.out.println(name + "吃饭");
}
public void sleep() {
System.out.println(name + "睡觉");
}
}
Bird 考察继承 重写
package Girl.study;
/*
* 继承、也是一大考点
* 首先继承是使用extends 父类名
* 注意继承的时候一定要注意父类的构造方法
* 比如我们这个类继承自Animal 如果Animal的构造方法被重载了(也就是你把默认的无参构造方法覆盖了)
* 你就一定要记得在子类里面写上原先父类的构造方法的参数,然后super 如下写法
* 一定要把super写在第一行(原因是:子类实例中会包含父类实例必须先加载父类实例,不用理解考试不考这么深)
* public Bird(String name, int age) {
super(name, age);
}
* */
public class Bird extends Animal {
public Bird(String name, int age) {
super(name, age);
}
// 之后就是重写方法
//@Override就是重写的标志,不写也行,就相当于一个记号最好写上
@Override
public void eat() {
System.out.println("鸟在吃虫子");
}
@Override
public void sleep() {
System.out.println("鸟在树上睡觉。");
}
//添加fly方法
public void fly() {
System.out.println("鸟在飞");
}
}
Test 考察多态
package Girl.study;
//测试类
public class Test {
//主方法
public static void main(String[] args) {
//如果你写了有参的构造方法
Animal animal = new Bird("多多",1);
//本来Animal里面没有fly 如果要用animal对象访问原本Bird类中的方法
//也就是使用父类的对象访问子类对象中的方法,叫这样写
//这个是多态的用法,叫做向下转型。(这个比较难理解)
//大概就是父类的引用指向了子类实例
//引用就相似与c语言的指针,里面存的是地址
//实例就是对象本身,里面是对象的值等。
animal.eat();
animal.sleep();
//使用的时候记得强转。
((Bird) animal).fly();
}
}
Person 考察对于原生类的重写Comperable toString
package Girl.study;
//(给某人看的)这个Person就是Student
//继承了Comparable接口,就必须重写里面的compareTo方 法 <> 里面是泛型也就是比较的类型
public class Person implements Comparable<Person>{
private int grade;//成绩
private int age;//年龄
private int sno;//简单起见把学号写成int类型的
public Person(int grade, int age, int sno) {
this.grade = grade;
this.age = age;
this.sno = sno;
}
@Override
public int compareTo(Person o) {
if (grade > o.grade) {//先比较成绩
return 1;
} else if (grade < o.grade) {
return -1;
} else {//成绩相等比较年龄
if (age > o.age) {//先比较成绩
return 1;
} else if (age < o.age) {
return -1;
} else {
if (sno > o.sno) {//先比较成绩
return 1;
} else if (sno < o.sno) {
return -1;
}
}
}
return 0; //相等
}
//重写toString方法
//所有的类都继承自Object类所以可以直接重写并使用
//背过就行
@Override
public String toString() {
return "Person{" +
"grade=" + grade +
", age=" + age +
", sno=" + sno +
'}';
}
//试试比较
public static void main(String[] args) {
Person person = new Person(99,12,12);
Person person1 = new Person(98,11,12);
System.out.println(person.compareTo(person1));
System.out.println(person.toString());
}
}
TeseClass 考察文件读写
package Girl.study;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 文件读取
* 创建流对象(也就是打开文件)
* 之后操作
*
*
* 之后关闭(!!!!!重点,你不写肯定扣分,)
*
*
* 一定要在方法头上抛IOException
* */
public class TestClass {
public static void main(String[] args) throws IOException {
FileWriter fileWriter = new FileWriter("文件路径,写绝对路径");
String s = "asaa";
fileWriter.append(s);
// 写完关闭
fileWriter.close();
//之后就是读
FileReader fileReader = new FileReader("要读的文件路径");
String s1 = String.valueOf(fileReader);
System.out.println(s1);
//关闭
fileReader.close();
}
}