java-面向对象

一、对象与类

1.面向对象的本质:以类的方式组织代码,以对象的组织封装数据

2.特性:抽象(共性)、封装、多态、继承

3.现实:先有对象,后有类;实际上,先有类,才有对象

类是模板(抽象),对象是一个具体的实例

类:静态的属性,动态的行为

4.方法:

静态方法: 直接类.方法调用

动态方法:实例化这个类

package com;

public class wjm10 {
    public static void main(String[] args)
    {

            Student student = new Student();//实例化类
            student.say();调用
    }


}
package com;

public class Student {
    public void say()
    {
        System.out.println("say");
    }
}

5.一个项目只有一个main方法

6.实例化对象

一个类即使什么都不写,他也会有一个构造器(全为空)

构造器特点:必须与类名相同;且无返回值,也不是void;

可用来实例化初始值

使用new关键字,必须要有构造器;

也可进行有参构造,一旦定义了有参构造,无参构造必须显式定义,否则无效

alt+insert 自动生成构造器

二、封装

高内聚、低耦合

属性私有,可以通过公共的方式去get/set方法

alt+insert直接生成get/set方法

三、继承

extends

java只有单继承,继承是类与类的关系

子类继承了父亲的所有方法,私有的属性不能继承

Crtl+H显示继承树

所有的类,都直接或间接的继承Object

super

调用父类中的东西(除私有)

调用父类的构造器,必须在子类的第一行

super必须只能出现在子类的方法或构造方法中

super和this不能同时调用构造方法

四、方法的重写

重写都是方法的属性,与属性无关

静态方法调用只与实例化对象的左边有关

重写:非静态方法的调用,子类重写了父类的方法,调用的仍是子类的方法

重写:方法名、参数列表相同,方法体不同;修饰符:范围可以扩大,不能缩小private-》protected》default-》public

抛出异常:修饰符范围只能缩小,不能扩大

为什么需要重写?父类的功能,子类不一定需要

五、多态

一个对象的实际类型是确定的,可以指向的引用类型是不确定的:父类的引用指向子类

对象能执行哪些方法,主要看左边的类型

多态是方法的多态

方法是:static、final、private都不能进行重写

instanceof 类型转换 引用类型

System.out.println(x instanceof y)
//能否编译 通过,要看x,y有没有直接关系

子类转换为父类,可能丢失自己的方法

父类转子类,需要进行强制转换

六、Static

静态的类变量、方法可以用类直接访问

静态代码块每次最先执行,且在整个过程中只执行一次

执行顺序:静态代码块->匿名代码块->构造器

被final修饰的类没有子类,即不可以被继承

七、抽象类

abstract

抽象方法:只有名字,没有实现

类单继承,接口多继承

若非抽象子类继承了抽象类,则必须实现父类的所有的方法

不能new这个抽象类,只能靠子类去实现它

抽象类里可以有普通方法,但抽象方法必须在抽象类里

八、接口(interface)

只有抽象方法,接口的本质是契约

默认public abstract,属性都是常量

接口都有实现类(implements),可以一次实现多个接口

九、内部类

一个java类中可以有多个class类,但是public class只有一个

1.成员内部类

2.匿名内部类:没有名字初始化,不用将实例保存在变量中

十、异常

1.错误

2.异常:

(1)运行时异常:数组下标越界、空指针异常、算术异常、丢失资源、找不到类

(2)非运行时异常:

package com;

public class wjm10 {
    public static void main(String[] args) {

        int a = 1;
        int b = 0;
        try{//监控区域
            System.out.print(a/b);
        }catch (ArithmeticException e)

        {   //捕获异常
            System.out.println("cathch");
        }
        finally {//善后处理
            System.out.print("finally");
        }
    }


}

捕获多个异常,要从小到大的去捕获Error->Exception->Throwable

异常快捷键:选中这行代码,ctrl Alt+T

主动的抛出异常,一般在方法中throws

自定义异常:只需继承exception类

//测试类
package com;

public class wjm10 {


      static void test(int a) throws myExcepction {
            if(a>10)
                throw new myExcepction(a);


        System.out.println("ok");}

    public static void main(String[] args) {
        try {
            test(11);
        } catch (com.myExcepction myExcepction) {
            System.out.println("sorry");
        } finally {
        }
    }

}

//自定义异常
package com;

public class myExcepction extends Exception{

    private int detail;

    public myExcepction(int a)
    {
        this.detail = a;

    }

    public String toString()
    {
        return "My Exception{ detail=" + detail + "}";
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值