java SE 教程 10

Eclipse的使用

  1. 打开eclipse , 选择对应的工作空间

  2. 调整视图

  3. 创建工程

    • 再Eclipse中 工作空间中可以包含多个 工程/项目 , 一个工程中包含多个Java类
  4. 创建Java类, 编写代码
    方法的重写 重点

从父类继承过来的方法, 并不一定完全符合子类的业务逻辑 !

有时子类需要改变父类继承过来的方法, 可以通过自身编写相同的方法来完成覆盖父类方法的操作 !

规则:

1. 方法名称, 参数列表 ,返回值类型的声明 必须相同 !

2.  访问的权限, 子类的只能大于或等于父类的权限!

3.  抛出的异常 只能小于或等于父类的异常抛出范围 !

方法的重写(Override)与方法的重载(Overload)的区别: 面试题

在定义上:

重写: 方法名称, 参数列表, 返回值类型必须一致!访问权限只能大于或等于父类的权限,只能小于或等于父类的异常


重载: 方法名称相同, 参数列表的类型或个数不同 , 和返回值类型无关, 和权限无关, 和异常抛出无关 !

在使用的位置:

重写发生在子父类的继承关系中, 是子类重新编写了一个方法, 覆盖调用从父类继承过来的方法

重载发生在一个类中 , 是让类以统一的方式处理不同类型数据的一种手段 !

在多态的概念上:

方法的重载 , 就是一个类中多态的体现 !
方法的重写 , 是子父类的多态的体现 !

包 掌握

包名的规范:

一般再第三层的包中开始写代码: 

    例如兄弟连: 

        官网网址为: itxdl.cn

        cn.itxdl.xxx

访问权限修饰符 重点

修饰符 当前类 当前包中 子父类中 其他所有类中

private(私有) ✔ ✖ ✖ ✖

不写(默认) ✔ ✔ ✖ ✖

protected(受保护) ✔ ✔ ✔ ✖

public(共有的) ✔ ✔ ✔ ✔
final 熟练掌握

final class : 通过final修饰的类, 为最终类, 无法被继承 ! 表示一个类 无法通过继承再进行任何的扩展 !

final method: 通过final修饰方法 , 表示这个方法是最终的 ,不可以被重写!

final attribute: 通过final修饰的变量 , 变成了常量 ! 不可更改的变量 !

public static final attribute: 全局常量, 在当前项目中, 都可以访问到这个常量的值 !
属性的默认初始化 与 显示初始化 了解

举例:

private int a  =  10; 
上述代码的执行过程:

    1.  在栈内存中 存储一个a  默认值为0 , 我们称其为默认初始化值0
    2.  将等号右边的值或者运算结果 赋值给等号坐标,  我们称其为显示初始化 !

多态 重点

一种事物的多种形态 !

父类引用指向子类对象

例如:

Person p = new Student();

基本数据类型的多态: (基本数据类型的自动转换)

short a = 10;  int a = 10;  long a = 10; 

方法的多态:

方法的重载 , 就是一个类中多态的体现 !
方法的重写 , 是子父类的多态的体现 ! 

返回值的多态
一个方法, 在声明返回值类型时 , 可以声明为父类类型, 而具体返回数据时, 可以返回子类类型数据 !

参数列表的多态

方法的参数列表中 可以声明需要传递一个父类的对象, 而方法调用时, 可以传递的是子类对象 !

多态中, 父类引用可以调用子类的属性和方法吗?

思考: Person p = new Student();

使用上述的p引用, 操作时,  操作的是Person还是Student对象? 

1.  只能使用父类中定义过的方法 和 属性 !
2.  如果子类对某个父类的方法进行了重写 , 那么多态中调用的永远都是子类所重写的新的方法 !

静态的方法, 不依赖于对象, 所以跟多态的概念没有关系,  使用某一个类的引用调用静态的属性或方法, 那么一定是调用的这个引用类型的方法!

观察:

Person p = new Student();
Student s = p;


Student s = new Person();

在多态中, 如果类型转换时, 将一个内存空间的对象转换为类型不匹配的对象时, 会出现:
java.lang.ClassCastException(类型转换异常)

概念:
必须发生在父子类之间。
父类转子类需要做强制类型转换(向下造型),子类转父类可以自动完成(向上造型)。

对象的类型转换:  其实是一种还原的行为, 内存中类型必须是该类的类型,才能转换成功.

如何合理的判断一个对象是否可以转换为某个类的引用

使用instanceof关键字, 可以判断对象是否来自指定的类

语法: 对象名 instanceof 类名 , 返回的结果为boolean

true表示来自指定的类型, 可以进行强制转换 , false反之


例如:  


    Person p = new Student();

    if(p instanceof ChengGuan){
        System.out.println("它是城管");
    }else{
        System.out.println("它不是城管");
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值