Java复习(第三四章)

第一章 面向对象上

  • 面向对象的特点:封装、继承、多态。

  • 类和对象的关系
    ①类的定义:类是对象的抽象,用于描述一组对象的共同特征和共同行为。
    共同特征:类的属性(成员变量)
    共同行为:类的方法(成员方法)
    【修饰符//public或不写】class类名[extends父类名] [implements接口名】{
    类体
    }
    ②成员变量: 声明(未初始化=未赋值)成员变量
    定义(初始化)成员变量
    ③成员方法:格式
    修饰符:权限修饰符、静态修饰符static、最终修饰符final等。
    ④对象:
    类名 对象名=new 类名();
    栈内存 堆内存
    注意:new.类名().对象成员【只能访问其中一个成员,无引用,则为垃圾】
    ⑤访问控制符:private——default——protected——public
    同类 同包 同包\不同包子类 全局

  • 类的封装
    注:如果外界需要访问私有属性,需要提供一些使用public修饰的公有方法包括获取属性值的getXXX方法、设置属性值的setXXX方法。

  • 方法的重载和递归
    ①重载:方法名相同、参数个数不同或类型不同(与返回值类型无关)
    ②递归:

  • 构造方法(它会在类实例化对象时自动被调用)(实例化对象同时为对象的属性赋值)(无需直接访问属性或调用setXXX方法给属性赋值)
    【修饰符】方法名({参数列表}){
    // 方法体
    }
    ①方法名与类名相同
    ②方法名前无返回值类型声明
    ③在方法中不能使用return语句返回一个值,但可单独写一条return语句作为方法的结束
    ④构造方法的重载
    注:Java中每个类至少有一个构造方法,若无显示构造方法,则系统自建一默认的构造方法。若有,则无默认
    通常用public修饰

  • this(在非静态成员方法中,使用访问类的其他非静态成员)
    ①通过this调用成员变量,解决与局部变量名称冲突问题this.成员变量
    ②调用成员方法this.方法名()
    ③调用构造方法(在一个构造方法中调用其他构造方法)
    (只能为第一条语句,且只能出现一次)
    (不能在一个 类中两个构造方法相互调用)
    this([参1,参2,…])

  • static关键字
    ①静态变量:类名.变量名;(只能用于修饰成员变量,不能局部变量)
    ②静态方法(不创建对象直接调用方法)
    :在类中定义的方法前加上static关键字
    类名.方法 / 实例对象名.方法
    注:在一个静态方法中只能访问用static修饰的成员。
    ③静态代码块(在类第一次使用时才会被加载,且只会加载一次)(会随类对象的创建而执行)
    static{
    }

第四章

1
  1. 类的继承(extends)
    注:①允许单继承,不允许多重继承
    ②多个类可以继承同一个父类
    ③多层继承允许

  2. 重写父类方法(子类权限<=父类权限,不能更严格)
    子类中重写的方法需和父类被重写的方法名有相同的方法名、参数列表、返回值类型。

  3. super关键字(访问父类的成员【变量,方法,构造方法】)
    ①调用父类的成员变量和成员方法
    super.成员变量
    super.成员方法({参1,参2,…})
    ② 调用父类的构造方法(位于子类的第一行,并且只能出现一次)
    (在子类中一定会调用父类中的某个构造方法,若没指定,则调用父类无参的构造方法)
    super({参1,参2,…})

  4. Object类(超类、基类、根类)
    ①所有类的父类
    ②定义类时,无没有用extends显示表明父类,则默认继承自Object类
    ③eauals()方法 [ 判断某对象与此对象是否相等]
    两种比较方法
    —base1.equals(base2)[结果为布尔型]
    —base1==base2(比较地址)
    ④getClass()方法(返回运行时类)【base.getClass()】
    ⑤hashcode()方法(返回对象内存地址为int类型的哈希码值)(对象转为int)【base.hashCode()】
    ⑥String toString()方法(返回对象用字符串表示)【base.toString( )】

  5. final关键字
    ①修饰的类不能被继承
    ②修饰的方法不能被子类重写
    ③修饰的变量(局部变量、成员变量)是常量,只能赋值一次(final修饰成员变量是,需在定义的同时赋一个初始值)。

  6. 抽象类和接口
    1>抽象类(为继承服务)
    -抽象方法必须用abstract类修饰,且定义方法时无需实现方法体
    public abstract 返回值类型 方法名();
    ①包含抽象方法的类必定为抽象类,但抽象类可以不包含抽象方法
    ②抽象类不能被实例化(abstract+普通类)
    -抽象方法没有方法体,不能被调用(如需调用,创建子类,实现抽象方法)
    ③子类实现父类的抽象方法后,可调用(通过实例化的对象即可调用实现方法)

  7. 接口(抽象类中所有方法都为抽象)(不能包含普通方法)
    -修饰符【interface】
    -一个接口可同时继承多个父接口(extends 父接1,父接2,…)
    -一个类可同时实现多个接口
    -实现类用implements实现接口(entends父类名 implements接口1,接口2,…【一个类继承一个类时还可以实现多个接口】
    -接口与接口还可用继承关系,实现类需实现两个接口所有的抽象方法

  8. 多态(是指不同类的对象在调用同一个方法时所呈现的多种不同行为)
    -一个类中的属性和方法被其他类继承或重写后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法所呈现出的多种不同形态。
    -Java的多态性是由类的继承、方法重写以及父类引用指向子类对象体现的
    1>对象的类型转换
    ①向上转换(不能通过父类变量调用子类的特有方法)
    Area circle=new Circle();
    父类 子类
    circle.area();
    ②向下转换(必须转换为本质类型)
    Animal an1=new Cat();
    Cat cat=(Cat)an1;
    cat.shout( );
    -避免转换类型错误instanceof
    Animal an1=new Dog();
    if(an1 instanceof Cat) {
    Cat cat=(Cat)an1;
    cat.shout( );
    }else{
    S.o.p(“不是Cat类型”)}

  9. 内部类
    ①成员内部类(类中类)
    -成员内部类可访问外部类的所有成员;外部也可访问内部成员变量及方法。
    Outer outer=new Outer();
    Outer.Inner inner=outer.new Inner();
    inner.show();
    outer.show2();
    ②局部内部类(方法内部类)(方法内部)
    Inner inner=new Inner();
    -局部内部类可访问外部类的所有成员,而局部内部类中的成员中能在该创建局部内部类的方法中访问
    ③静态内部类(用static修饰的成员内部类)
    -只能访问外部类的静态成员
    -外部内访问静态内部类成员时,可跳过外部类直接用过内部类访问静态内部类成员
    Outer.Inner inner=new Outer.Inner();
    ④匿名内部类(GUI)(无名称的内部类)
    new 父接口(){
    //匿名内部类实现部分
    }

  10. 异常(Exception)
    1>编译异常checked
    ①throw
    -在方法声明(Main)指明抛出异常,可同时抛出多种类型的异常
    throws
    -在方法体内,抛出一个异常类对象
    ②try…catch
    注:用throw抛出异常后,还需要用throws或try…catch处理
    若throw抛出的是Error、RuntimeException或者他们的子类异常对象,则不需用
    ③自定义异常
    2>运行时异常unchecked
    3>垃圾回收

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值