`

java编程思想笔记(一)对象导论

阅读更多

1.万物皆对象,现实中的(狗,建筑物,服务等),都可以转为JAVA中的对象(类),因为类描述了具有相同特性(成员变量)和行为(方法或功能)的对象集合,所以一个类实际上也是个数据类型。

 

每个对象都有个接口(如下图)。

灯的接口定义 开,关,调亮,调暗的方法,创建新类即可具体实现该接口。

对象的引用“lt”

Light lt = new Light();

lt.on();


 

 

2.Java中的4种访问制权限(被隐藏的具体实现):

(1).public:最大访问控制权限,对所有的类都可见。

(2).protect:同一包可见,不在同一个包的所有子类也可见。

(3).default:包访问权限,即同一个包中的类可以可见。默认不显式指定访问控制权限时就是default包访问控制权限。

(4).private:最严格俄访问控制权限,仅该类本身可见,对外一切类都不可以访问(反射机制可以访问)。

 

3.面向对象编程中两种对象组合方式——is-a 和 has-a:

(1).is-a组合:一个类继承具有相似功能的另一个类,根据需要在所继承的类基础上进行扩展。

优点:具有共同属性和方法的类可以将共享信息抽象到父类中,增强代码复用性,同时也是多态的基础。

缺点:子类中扩展的部分对父类不可见,另外如果共性比较少的时候使用继承会增加冗余代码。

 

(2).has-a组合:has-a组合是在一个类中引用另一个类作为其成员变量。

如新的类:汽车,可以有引擎,方向盘,轮胎等组合,电脑主板由CPU,内存卡,显卡来组合。

优点:可扩展性和灵活性高。在对象组合关系中应优先考虑has-a组合关系。

缺点:具有共性的类之间看不到派生关系。

 

4.继承

当一个新类与原有的类相似,可以让新类继承于原有的类,原有的类就是父类(基类),新类为子类(导出类), 子类可以加新方法,也可以覆盖重写父类的方法,高拓展性,高灵活度。如果子类只是继承而不做任何操作,那就跟父类没任何区别,子类就没什么意义。

 

如下图  

35 几何(shape)为父类,有几何图形共有的属性尺寸,颜色,位置等,还可以被绘制,擦除等。

圆形,长方形,三角形都可继承shape,同时也拥有了父类的属性和方法,三角形还增添了垂直翻转的新方法。

36 还可重写draw()和erase();


 

5.多态:

在面向对象编程中,子类中拥有和父类相同方法签名的方法称为子类方法覆盖父类方法,当调用子类方法的某个操作时,不必明确知道子类的具体类型,只需要将子类类型看作是父类的引用调用其操作方法,在运行时,JVM会根据引用对象的具体子类类型而调用应该的方法,这就是多态。

多态的基础是java面向对象编程的晚绑定机制。编程中有如下两种绑定机制:

(1).早绑定:一般在非面向对象编程语言中使用,在程序编译时即计算出具体调用方法体的内存地址。

(2).晚绑定:面向对象编程语言中经常使用,在程序编译时无法计算出具体调用方法体的内存地址,只进行方法参数类型和返回值类型的校验,在运行时才能确定具体要调用方法体的内存地址。


  

 

6 .java单继承的优点:

相比于C++的多继承,java只支持类的单继承,java中的所有类的共同基类是Object类,Object类java类树的唯一根节点,这种单继承有以下好处:

(1).单继承可以确保所有的对象拥有某种共同的特性,这样对于JVM虚拟机对所有的类进行系统级的操作将提供方便,所有的java对象可以方便地在内存堆栈中创建,传递参数也变的更加方便简单。

(2).java的单继承使得实现垃圾回收器功能更加容易,因为可以确保JVM知道所有对象的类型信息。

 

7.选择容器对象两个原则(指JAVA中的集合或数据结构):

 (1).容器所能提供不同的类型的接口和外部行为是否能够满足需求。

(2).不同容器针对不同的操作效率不同。

所以 按需选择适合的高性能容器(前提是知道集合的内部各项功能的性能)

 

 8.类型转换:

Java中有两种常见的类型转换:向上类型转换(upcast)和向下类型转换(downcast):

(1).向上类型转换(upcast):

向上类型转换是将子类对象强制类型转换为父类类型,经典用法是面向对象的多态特性。向上类型转换时,子类对象的特性将不可见,只有子类从父类继承的特性仍然保持可见,向上类型转换时编译器会自动检查是否类型兼容,通常是安全的。

(2).向下类型转换:

向下类型转换是将父类类型强制转换为子类类型,转换过后父类中不可见的子类特性又恢复可见性,向下类型转换时,编译器无法自动检测是否类型兼容,往往会产生类型转换错误的运行时异常,通常不安全。

 

 

 

  • 大小: 18.7 KB
  • 大小: 59.4 KB
1
0
分享到:
评论

相关推荐

    java编程思想学习笔记

    Java是一种面相对象的编程语言。计算机语言分成两种,第一种是面向机器结构的语言,构建数据模型是基于机器的结构。第二种是面向待解决问题结构的语言,构建数据模型是基于问题的结构。Java提供了更丰富的工具来描述...

    Java编程思想笔记

    在深入探讨《Java编程思想笔记》时,我们可以提炼出一系列核心概念和技巧,它们是理解和掌握Java编程语言的关键。本笔记覆盖了从基本的数据类型、对象创建到高级的多态、接口等主题,提供了全面而深入的Java知识体系...

    java编程思想读书笔记

    1. **Java语言简介**:Java是一种跨平台的、面向对象的编程语言,由Sun Microsystems(现为Oracle公司)开发,具有“一次编写,到处运行”的特性。它强调代码的可移植性、安全性及性能。 2. **基本语法**:包括变量...

    JAVA编程思想笔记.pdf

    JAVA编程思想笔记.pdf

    Java编程思想-笔记.docx

    本笔记涵盖了Java编程思想的多个方面,包括访问权限控制、封装、继承、多态、接口、内部类、持有对象等。 访问权限控制 访问权限控制是为了把变动的事物与保持不变的事物区分开来。Java中有四种访问权限修饰词:...

    Java编程思想第四版_读书笔记推荐.pdf

    Java 编程思想第四版读书笔记推荐.pdf 以下是从给定的文件信息中生成的相关知识点: 1. 面向对象程序设计(Object-oriented Programming OOP) * UML(Unified Modeling Language 统一建模语言) * 将对象想像成...

    Java编程思想读书笔记.doc

    ### Java编程思想读书笔记知识点梳理 #### 第1、2章:万事万物皆对象 ##### 一、所有对象都必须由你建立 - **存储位置**: - **寄存器**:程序中不可控。 - **栈 (Stack)**:存放基本类型数据和对象引用,对象...

    Thinking in Java 自学笔记——第一章 对象导论

    Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...

    Java编程思想读书笔记

    《Java编程思想读书笔记》 Java是一门面向对象的编程语言,它的核心理念是“万事万物皆对象”。在Java中,所有的对象都是通过类(Class)来定义的,并且必须由程序员显式创建。理解对象的存储位置是理解Java内存...

    Java编程思想重点笔记(Java开发必看)

    Java 编程思想是每一位Java开发者都需要深入了解的重要领域。这篇笔记涵盖了多个关键知识点,包括多态性、final方法、静态方法、构造函数以及构造过程中的多态行为。 首先,Java中的多态性是面向对象编程的核心特性...

    Java编程思想读书笔记.pdf

    Java编程思想读书笔记.pdf

    Java编程思想笔记(全)

    第 1 章 对象导论 第 2 章 一切都是对象 第 3 章 操作符 第 4 章 控制执行流程 第 5 章 初始化和清理 第 6 章 访问权限控制 第 7 章 复用类 第 8 章 多态 第 9 章 接口 第 10 章 内部类 第 11 章 持有对象 第 12 章 ...

Global site tag (gtag.js) - Google Analytics