欢迎光临散文网 会员登陆 & 注册

【零基础 快速学Java】韩顺平 零基础30天学会Java

2022-09-15 23:32 作者:喜欢我李少吗  | 我要投稿


访问修饰符

  • java提供四种访问控制修饰符号控制方法和属性的访问权限

1.公开级别:用public修饰,对外公开。

2.受保护级别:用protected修饰,对子类和同一个包中的类公开。

3.默认级别:没有修饰符号,向同一个包的类公开。

4.私有级别:用private修饰,只有类本身可以访问,不对外公开。




面向对象编程-继承

  • 继承的深入讨论/细节问题

1.子类继承了所有的属性和方法,但是私有属性和方法不能在子类里直接访问,要通过公共的方法去访问。






二,对象的多态

(1)一个对象的变异类型和运行类型可以不一致。

(2)编译类型在定义对象是,就确定了,不能改变。

(3)运行类型是可以改变的。

(4)编译类型看 = 的左边,运行类型看 = 的右边。

  • 调用对象方法时,依照的是运行类型。
  • 父类可以指向(接收)子类的对象。

多态的向上转型

  1. 本质:父类的引用指向了子类的对象。
  2. 语法:父类类型 引用名 = new 子类类型();
  3. 特点:编译类型看左边,运行类型看右边。

可以调用父类中的所有成员(需遵守访问权限)

不能调用子类中的特有成员。(因为在编译阶段,能调用那些成员,是由编译器决定的。)

最终运行效果看子类的最终实现。(调用方法是,按照从子类开始查找方法。)

------------------------------------------------------------

多态的向下转型

  1. 语法:子类类型 引用名 = (子类类型)父类引用;
  2. 只能强转父类的引用,不能强转父类的对象。


------------------------------------------------------------

属性重写问题

1、属性没有重写之说,属性的值看编译类型。

eg:

class Base {//父类

int count = 10;//属性

}

class Sub extends Base {//子类

int count = 20;//属性

}

Bse base = new Sub();

bace.count;//10

2、instanceof 比较操作符,用于判断对象的运行类型是否为 xx 类型或 xx 类型的子类型。

-----------------------------------------------------------

调用属性看编译类型,调用方法看运行类型。

-----------------------------------------------------------

动态绑定机制

  1. 当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定。
  2. 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用。

=================================

三,多态的应用

多态数组

=================================

四,Object类详解

equals方法

== 是一个比较运算符

1.==:既可以判断基本数据类型,又可以判断引用类型。

2.==:如果判断基本类型,判断的是值是否相等。

3.==:如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象。

4.equals:是Object类中的方法,只能判断引用类型。

  • hashCode方法
  1. 提高具有哈希结构的容器的效率。
  2. 两个引用,如果指向的是同一个对象,则哈希值肯定是一样的!
  3. 两个引用,如果指定的是不同对象,则哈希值是肯定不一样的。
  4. 哈希值主要是根据地址号来的,不能将哈希值等价于地址。
















【零基础 快速学Java】韩顺平 零基础30天学会Java的评论 (共 条)

分享到微博请遵守国家法律