Java(OOP)


Java(OOP)


概述

面向对象的本质是:以类的方式组织代码,以对象的组织数据。可分为封装,继承,多态。


一些方法的细节

静态定义(static)和动态定义(类的实例化):前者我们可以直接利用定义里的方法,后者我们需要new一个对象来执行。

public class Test01 {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.name);
        change(person);
        System.out.println(person.name);
    }
    public static void change(Person person){
        person.name="xxx";
    }
}

class Person{
    String name;
}

构造器

用来对类进行一个初始化的构造,使用new必须要构造器,注要是否有参数,可以用Alt和Insert来快捷构造。

public class Person {
    String name;
    public Person(){
    }
    public Person(String name){
        this.name=name;
    }
}

封装

提供接口来操作,避免用户直接访问数据,如:

private String name;   
public String getName(){
    return this.name;
}
public String setName(String name){
    return this.name=name;
}

继承

子类(派生类)和父类,可以理解为一棵树的关系。

Super可以访问父类的public内容,同时会继承父类的构造器。

public class Person1 extends Person{}

多态

1.多态是方法的多态

2.父类和子类,有联系,类型转化异常

3.存在条件:继承关系,方法需要重写,父类引用指向子类对象(static,final,private不能重写)

强制转化:
1.父类引用指向子类对象

2.把子类转化为父类,向上转型

3.把父类转化为子类,向下强制转型


抽象类&接口

抽象类:1.不能new这个抽象类,只能靠子类实现

2.抽象类可以写普通的方法

3.抽象方法必须再抽象类中

接口可以实现多对一(为多继承):

public interface UserService {
    public abstract void add(String name);
}

//实现规范
public class UserServiceImpl implements UserService,TimeService{
    @Override
    public void add(String name) {
    }
    @Override
    public void timer() {
    }
}

异常机制

try catch (finally),捕获异常,可以捕获多个异常,然后让程序继续执行。(ctrl+alt+t)

public static void main(String[] args) {
    int a=1,b=0;
    try {
        System.out.println(a/b);
    } catch (ArithmeticException e){
        System.out.println("Error!!!");
    } finally {
        System.out.println("finally!!!");
    }
}

public void test(int a,int b){
    if(b==0){
        throw new ArithmeticException();
    }
}


文章作者: Dydong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Dydong !
  目录