`
majm
  • 浏览: 35603 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java OOP基础

    博客分类:
  • Java
阅读更多

Java OOP心得

1.   面向对象的java实现——封装

封装的优势

重复使用

 

可维护性好

 

限制影响的范围

 

分离关注点

 

安全

 

 

封装的粒度(复用)

                      平台

                        |

组件—> 框架—> 设计思想

  |

对象/

  |

方法

  |

粘贴

 

构造方法的目的:

初始化对象——创建一个内存空间(堆)

特性:

1.方法名和类名相同

2.没有返回类型

3.new调用自我反射机制

4.不能被继承

5.默认公有一个

 

方法重载

同一类中

完成相同的功能

参数列表不一样

(同一类中返回の不同,不可重复定义的方法)

类方法    (静态)少用——常用则用。

实例方法 (对象)

 

public           任何地方

protected      同一包或其他子类

package        同一包下

private          同一类中

注意:

面向对象的代码只是过程化程序设计方法的一个层次,它是目前我们所知的一种比较高级的过程化境界(但不是最高的),面向对象的代码有较好的组织结构和重用性,从而适用比较大型的应用程序开发中。但面向对象是一种思想而不是一种固定的套路。面向对象思想利用对问题的高度抽象来提升代码的可重用性。

2.   面向对象的java实现——继承和多态

继承:

必须要满足is-a的关系。<里氏替换原则>

为什么需要继承:代码的复用,给框架提供类的结构。

总结类与类的关系:

继承<泛化>

关联<包含>

依赖<AB某方法的局部变量>

接口<A implement B>

聚合——整体部分的关系是强关联

组合——<生命周期是一致的>

 

两种方法来识别类

自底向上<抽象>,自顶向下<分解>

 

关于继承

慎用继承:继承破坏了封装性。

当开发时对超类进行了修改或扩展后,可能会对其子类造成破坏,错误不易察觉。

应为编译时通过,运行时通过。但结果不一定是想要的。

只有当类结构相似时,考虑使用继承。

 

关于多态

一个类可以具有多种行为,定义具有名称相同的方法,又有不同的行为。

由于不同的对象可具有相同的动作。所以在针对同一动作操作中,又可有不同的对象来实现。

 

Java提供2种类型的多态性

基于接口的多态性

基于继承的多态性

1.方法的重载

2.方法的覆盖

重载时尽量用@Overide标注

Java中获取对象:

1new

2.反射机制

3.工厂模式

4.依赖注入

 

注意:子类中不能有重复定义的方法。<名称相同但返回类型不同>

 

 

3.   面向对象的java实现——接口

Java中接口有两种不同的含义。

第一种是指java接口,这是一种java语言中存在的结构,有特定的语法和结构。

第二种仅仅是指一个类所具有的方法的特征集合,是一种逻辑上的抽象。

 

关于建立抽象思想

Java这种OO语言到了今天已经非常的成熟的原因之一是它可以构建出一强大的抽象层,并且在各个领域都已经得到了成熟的应用。

 

我们初学着对这些OO的思想难以理解,不怕。我们可以利用现成的,成熟的,完善的抽象层应用,来帮助我们建立OO思想。

 

等我们具备了这些以后,任何高级语言的应用也就不过如此了。

 

OO的思想在程序的设计方面(越大的项目越可以)充分的体现出来,他的好处。但我们在代码的实现方面(由于个方面的原因)很难做到完全的OO产品实现。

个人发表:

任何的抽象,都依赖与具体。不要痴迷于过度的抽象,而才去实现具体。

以前我们写代码的时候喜欢设计,设计的我们认为很详细了,然后开始将所有的功能模块都写完,接着再调试,在调试的过程中我们可能花费比写代码长的多的时间。是的,因为你在运行一个复杂的东西,当然不容易搞定了。Martin Flower认为我们调试的时间可以不用那么长,原因是我们不能在写完了一个复杂系统的时候再调试,我们可以先建立一个好的测试用例,在写这个测试用例的过程中我们更能对整个系统了解,也能够帮助我们写代码;然后我们一点点的写,写一部分测试一下,保证每次新写的代码都能正确运行,从而当代码写完了,系统调试也完毕了。这样的情况下可以认为我们没有在调试上花时间,我们把时间花在测试和编写代码上了。

4.   使用异常处理程序错误

JAVA编程语言的优点之一是它的健壮性

Java的异常处理功能负责错误处理,错误恢复。

Try…ctch…finally  捕获处理不管数否发生异常,都将保证运行。

ErrorException继承自Throwable类又继承自object类。

printStackTrace()    //显示有关异常信息。

getMessage();             //获得异常相关的详细性息。

getStackTrece();         //输出堆栈跟踪信息

throw     //显示的引发异常

throws   //不想处理

 

Java异常有API异常也有自定意异常

常见异常:

Exception

异常基类

ClassCastException

不能强制转换

NullPointerException

尝试访问null对象成员

ArrayIndexOutOfBoundsException

数组下标越界

IOException

I/O异常的根类

FileNotFoundException

找不到文件

ClassNotFoundException

不能加载所需要的类

RuntimeException

JavaLang异常的基类

ArithmeticException

算数错误

IllegalArgumentException

方法接受到非法的参数

NumberFormatException

字符串到float型数字的转换无效

InteruptedException

线程中断

EOFException

文件结束

NoSuchMethodError

但是该类不再有该方法的定义

 

 

 

 

5.   JAVA集合存储对象

A.    为什么需要使用集合框架

分析:数组的特点:

1长度相同;

2数据类型相同;

3添加删除效率不高;

4内存中存放的方式是不一样的

5通过下标查找效率高;

6可以有重复的元素;

7是一个有序的列表

个人观点:由于数组由以上优点与缺点,在java中曾对不同特定业务的应用,JAVA中有不同的存储集合类,来满足不同的业务需求。

 

B.     JAVA中集合框架的内容

Collection<单值>是最基本的接口,由List,Set接口来继承

List是有序的接口(可有重复元素),有:ArrayList(侧重查询)LinkedList(侧重修改)vector向量,支持线程同步

Set是无序的接口(不能有重复的元素),有:HashSetTreeSet使用时应优先考虑

Map<对值>接口提供了键值对访问(不能包含相同的key),有:HasMap.HasTable支持线程同步

 

C.    迭代器的使用和集合中的辅助类

iterator()方法返回一个Iterator对象,

通过hasNext()方法判断下个元素是否有值。

 

Collections类提供的静态方法,提供对集合中的元素管理的一些功能。

 

 

1
0
分享到:
评论

相关推荐

    javaoop基础和应用

    【Java OOP基础和应用:抽象类与final类】 面向对象编程(OOP)是Java的核心,其中抽象类和final类是两个关键概念,它们帮助我们实现代码的封装、继承和多态性。 **5.6.1 抽象类** 抽象类在Java中是一种特殊类型...

    javaoop基础应用和详解

    本篇将详细讲解Java OOP的基础应用,包括包(package)的概念、创建及使用。 首先,包在Java中是一种区分类名字空间的机制,它允许将相关的类和接口组织成集合,从而便于管理和避免命名冲突。包还具有访问权限控制...

    北大青鸟S2javaoop的PPt

    【Java OOP基础】 在Java编程中,面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它基于“类”和“对象”的概念,以实现代码的模块化和可重用性。Java OOP的核心概念包括封装、继承、...

    java初级oop基础

    ### Java初级OOP基础知识详解 #### 一、面向对象与面向过程的区别 在软件开发领域,面向对象(Object-Oriented Programming, OOP)和面向过程(Procedure-Oriented Programming, POP)是两种不同的编程思想。 - *...

    JavaOOP_第1章上机练习.zip

    在"JavaOOP_第1章上机练习.zip"这个压缩包中,我们可以预见到它包含了关于Java OOP的初步学习材料,特别是针对初学者的上机实践练习。 在Java OOP中,有四个核心概念:封装、继承、多态和抽象。这些概念是理解Java ...

    s2 JavaOOP上机作业全部代码

    在这个“s2 JavaOOP上机作业全部代码”压缩包中,包含了学生在学习Java OOP时可能遇到的各种练习和问题的解决方案。这些代码示例旨在帮助学生深入理解类、对象、继承、封装、多态等核心OOP概念。 首先,让我们详细...

    JAVAOOP所有内测题目

    以下是一些可能涵盖在"JAVAOOP所有内测题目"中的关键知识点: 1. **类与对象**:Java中的所有数据结构都基于类,而类是对象的蓝图。理解如何定义类,包括属性(成员变量)和方法(成员函数),以及如何创建和使用...

    Java OOP 面向对象基础代码实例.rar

    Java OOP 面向对象基础代码实例,代码主要涉及分析类之间的关系、聚集和组合、依赖与继承、有理数类Rational、类的设计原则、内聚性、实例Instance和静态修饰符Static、用顺序图和状态图模拟动态行为、使用Java API...

    JavaOOP_第2章上机练习.zip

    在本压缩包“JavaOOP_第2章上机练习.zip”中,主要涉及的是Java面向对象编程(Object-Oriented Programming,简称OOP)的相关知识。Java OOP是Java编程语言的核心特性,它允许我们将复杂的程序设计分解为一系列相互...

    JAVAOOP六到十章课后上机答案

    Java面向对象编程(Java OOP)是Java编程的核心概念,它基于类和对象,强调封装、继承和多态性这三大特性。...通过研究这些代码,你可以更好地掌握Java OOP编程,为未来的项目和开发工作打下坚实基础。

    JavaOOP学习重点

    理解类与对象的关系是OOP的基础,例如创建一个名为`Person`的类,包含姓名、年龄属性和说话的行为方法。 2. **封装**: 封装是将数据和操作数据的方法绑定在一起,对外隐藏对象内部的实现细节,只暴露必要的接口。...

    JAVAOOP课本一到五章全套练习答案

    每个压缩包文件(如JavaOOP01至JavaOOP05)很可能对应每章的一个或多个练习题目,包括源代码和解题分析。学习者可以通过查看这些示例代码,理解并模仿编程思路,以提高自己的编程技能。在实际练习中,建议先尝试自己...

    javaoop复习.rar

    在这个“javaoop复习.rar”压缩包中,虽然没有直接的标签信息,但我们可以推测它包含了一些用于复习Java OOP概念的资料。让我们深入探讨一下Java OOP中的关键知识点。 1. 类与对象: - **类** 是面向对象编程的...

    JAvaOOp06 第六章 集合框架.pdf|06 第六章 集合框架.pdf

    Java集合框架是Java编程语言中一个非常重要的组成部分,它为数据存储、管理和操作提供了丰富的类库。本章将深入探讨Java集合框架的核心概念、接口和类,以及它们在实际编程中的应用。 首先,集合框架的基础是接口,...

    javaOOP文档、知识点总结.CHM

    本文档总结javaOOP所有关键知识,包括java基础知识、面向对象、常用API、多线程、集合、IO、泛型、枚举、反射、注解等概念性知识。

    JavaOOP_第6章上机练习.zip

    在这个名为"JavaOOP_第6章上机练习.zip"的压缩包中,我们可以预见到包含的是关于Java OOP的第六章练习题目,可能涵盖了类、对象、继承、接口、抽象类、访问修饰符、构造器、方法重写、多态性等相关主题。 1. 类与...

    北大青鸟javaOOP多态Ch03作业全集.rar

    "北大青鸟javaOOP多态Ch03作业全集.rar"这个压缩包文件很显然是针对学习者提供的一系列关于Java多态性的练习和案例,帮助学生深入理解并掌握这一核心技能。 多态性是面向对象三大特性之一,另外两个是封装和继承。...

    Java oop面向对象15章资料

    在Java编程语言中,面向对象编程(Object-Oriented Programming, OOP)是核心概念之一,它基于类和对象的概念,使程序...通过实践,你不仅能加深对Java OOP的理解,还能提升编程能力,为后续的开发工作打下坚实的基础。

    ACCP 6.0 S2 javaOOP项目QuickHit

    《ACCP 6.0 S2 Java OOP项目QuickHit》是针对ACCP(Accelerated Computer Consultant Program)6.0第二阶段的一个编程实践项目,...通过这个项目,我们可以提升对Java编程语言的掌握,为后续的开发工作奠定坚实的基础。

Global site tag (gtag.js) - Google Analytics