2019-06-04复习要点类

2019-06-04  本文已影响0人  卡布奇诺_7828

复习要点

1.类class

1.1类的创建

类是一个.java文件,类是一个抽象的概念,是属性和方法的一个“容器”

public class Student{
    private int age;
    private String name;
    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;
    }
}
1.2创建对象

上述所说的类,类似一个“工厂”,它可以帮我们生产“产品”,这个“产品”我们称为对象

对象具有这类所有的属性和方法

充分理解类是生成对象的模板这句话

public class Test{
    public static void main(String[] args) {
        // 创建对象 : 利用构造器创建对象,student我们称为Student类的一个实例(对象)
        // 该实例,可以调用Student类中的方法来执行功能
        // 提示:如果Student中具有static方法,可以直接通过类名调用
        Student student = new Student();
        
        // 调用其方法,如果有返回值,可以用相应类型的变量接取
        String name = student.getName();
        // 调用其方法,如果需要传参,必须传对应类型
        student.setName("李四");
    }
}

提示:方法的调用,参数,返回值需要反复练习,彻底掌握

1.3方法和对象结合

充分理解方法和对象的前提下,来看他们的结合使用

例题1:

public class Student{
    private int age;
    private String name;
    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;
    }
}
public class Test{
    public void showInfo(Student student){
        // 打印输出传入的student对象的name
        System.out.println(student.getName());
    }
    public Student create(Student student){
        // 返回值也是一个对象,那调用这个方法将接到这个对象,看下面的test方法
        Student student = new Student();
        student.setName("王五");
        return student;
    }
}
public class Main{
    public void test(){
        Test test = new Test();
        Student student = test.create();
        System.out.println(student.getName());// 打印输出王五
    }
}

例题2:

public class Student{
    private int age;
    private String name;
    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;
    }
}
public class DBUtils{
    private static DBUtils db;
    private DBUtils(){}
    public static DBUtils getInstance(){
        if(db == null){
            db = new DBUtils();
        }
        return db;
    }
    public Student getStudent(){
        Student student = new Student();
        student.setName("mike");
        return student;
    }
}
public class Test{
    public static void main(String[] args) {
        // 通过类名调用方法,得到返回值
        DBUtils db = DBUtils.getInstance();
        // 对象可以调用它所在类的方法
        Student sutdent = db.getStudent();
        // 可以简写简写
        Student sutdent1 = DBUtils.getInstance().getStudent();
    }
}
1.4上溯造型(父类引用指向子类对象)

接口:interface,作用相当于父类,但接口与抽象类一样,是不能实例化的

抽象类:abstract class

public interface Father{ // 接口页是纯抽象的
    void show(); // 抽象方法
}
public class Son implements Father{
    public void show(){
         System.out.println("子类实现方法");
    }
}
public class Test{
    public static void main(String[] args) {
        // 上溯造型
        Father father = new Son();
        father.show(); // 打印输出 子类实现方法
    }
}

经典练习题

1.植物大战僵尸控制台版

2.熟练掌握方法的使用,弄清返回值,参数的意义

3.熟练掌握形参是对象,返回值是对象的用法


4.什么是方法重写

当一个子类继承一个父类时,它同时继承了父类的属性和方法。子类可以直接使用父类的属性和方法,如果父类的方法不能满足子类的需求,则可以在子类中对父类的方法进行重写(或覆盖)。

5.抽象类和接口有什么区别

抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板 

接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情 

6.书写单例工厂

public class Singleton {

    private final static Singleton INSTANCE = new Singleton();

    private Singleton(){}

    public static Singleton getInstance(){
        return INSTANCE;
    }
}




public class Singleton {

    private static Singleton singleton;

    private Singleton() {}

    public static Singleton getInstance() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                singleton = new Singleton();
            }
        }
        return singleton;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读