`
gimgen1026
  • 浏览: 160074 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[Ken原创]面向对象部分的总结

    博客分类:
  • Java
阅读更多
Java也学一阵子了,最近正做项目才发现还是基础方面欠缺点,这几天集中给自己补了一堂课,通过简短整理方式想巩固一下子,给自己看,同时给别人看。

虽然不是什么稀奇的文章,不过也相信也有很多需要此方面知识的朋友们此文章允许转载,请注明转载信息,谢谢!

Author: Kim
http://gimgen1026.iteye.com/
内存分析贯穿始终。每一个程序拿出来,这个内存里面到底怎么运行的,必须弄得清清楚楚的,所以复习的时候自己把每个程序拿出来自己想一想这个在内存里怎么执行,必须得想明白。

对象和类的概念:什么叫对象,什么叫类?
类是具有同一类事务的一个抽象。同一类,同样特征的的一个抽象。
对象是一类事务的一个特殊的实例。

类(对象)之间的关系:咱们讲了好多种,关联、继承、聚合,聚合里头还分两种聚集、组合。此外还有多态、实现。

面向对象的设计思想:认识到多态之后意识到了的它和面向过程确实不太一样。面上对象设计思想上来之后考虑的是这个问题域里头有哪些对象或者说那些类,类理有哪些属性和方法,类和类之间是什么关系,有没有继承的关系,有没有多态的关系,ok,这就是面向对象的设计思想。

class关键字:在Java里面使用class来定义一个类。

new关键字:new的时候new出了一个的新对象,然后呢迁出了一个引用的概念。引用是什么?脑子里立刻浮现同一小块内存指向一大块内存。
new一般和构造方法一起使用。构造方法指的是当这个类new一个新对象的时候调用的方法,这方法比较特殊,和类同名,没有返回值,void都不能写。

方法重载:同时构造方法也可以重载。那么,什么叫方法重载,方法名字一样,但是参数之间有区别,参数之间的区别在于类型不一样,或者是参数的个数不一样。

this关键字:this指的是当前对象,你现在调用哪个方法,这个this指的就是谁,那么内存里面什么情况呢,new出一个对象来,它里面有自己的引用指向自身。

static:static的成员变量它是属于所有类的,static的成员变量一般分配在Data区域里面,这个类的所有对象属于整个类,你不需要new这个对象就可以访问它。非static的,你必须得new一个对象才能访问它,static不需要,所以我们用类名加上点,即ClassName.***就能访问它里面的值,或者是来访问它的方法。

访问控制:3个关键字private (default) protected publicprivate修饰了成员变量是私有的,只有自己能访问它,出了类没有人能够访问它。
default一个包内的其他类可以访问它。
protected它的子类可以访问它。
public 所有类都能访问。
在这里default和public还可以修饰class,即public class的话所有的类都能访问它。default类是同一个包里面的其他类可以访问它。
还有一点,这3个关键字以及default都能修饰内部类。

extends 即继承:它的意思就是《某某是一种某某》,即《某某instanceof某某》,只要说通这句话就OK。
从一个类继承到另一个类的时候,相当于你拥有了那个类的所有的成员变量和所有的成员方法,包括private的,可是很不幸,这个private的成员变量你继承下来以后你拥有了所有权,sorry! 你没有使用权,即你只能看不能用。

overwrite(override)即方法的重写:父类里面实现了某方法,如果你很不满意,很简单,重写它。

final:final的变量不能够改变它的值。
final的方法不能被重写。
final的class不能被继承。

Object:Java的所有的老祖宗类,根基类。
典型的有toString方法:说白了就是一个字符串上的表现,你可以重写它,也可以写字符串来表现。
equals方法:定义了这个类的两个对象之间怎么样算相等,这样的语义。

upcasting(向上转型)&downcasting(向下转型):父类的引用指向子类对象,或者接口的引用指向实现接口的类的对象,叫向上转型,反之向下转型。

ploymophysm(多态)/ dynamic binding(动态绑定)/ late binding(时绑定):多态的存在有三个必要条件,要有继承、要有重写、父类引用指向子类对象。
脑子里立刻浮现出内存来,我们找那个方法的时候你实际当中new的是哪个类,我就找哪个类的对象的那个方法,这叫动态绑定。

abstract class(抽象类):含有抽象方法的类就是抽象类。抽象类只有方法定义,没有实现。

interface(接口):它是一种特殊的抽象类,这里面所有的方法都是抽象方法,并且都是public的。所有的成员变量都是public static final的。
接口和接口之间互相可以继承,类和类之间互相可以继承。类和接口之间只能实现,关键字implements。
一个类可以实现多个接口,多个类可以实现一个接口。
接口的本质,内存里面想一想,它其实就能看见这个对象的其中一部分方法,这就是一个接口。

分享到:
评论
1 楼 piaochunzhi 2007-10-18  
很容易懂

相关推荐

    从结构化到面向对象程序设计的模型转换.pdf

    迭代和增量开发是面向对象软件工程的重要组成部分。在实际应用中,通过迭代开发,软件工程师可以逐步实现和测试系统的各个部分,并根据用户的反馈不断调整和完善。增量开发则是指每次迭代只增加一部分新的功能,从而...

    [大学经典课堂课件]C++课件-面向对象高级编程第一部分.pptx

    C++语言支持面向对象编程,类(class)是C++语言中的基本组成部分。类可以分为两种:没有指针成员的类(Class without pointer members)和有指针成员的类(Class with pointer members)。 Complex和String是两个...

    面向对象程序设计语言.ppt

    面向对象程序设计语言,如C++,是一种支持类和对象的高级编程范式,它将数据和操作数据的方法封装在一起,以实现数据的隐藏和模块化。C++是从C语言发展而来,它不仅保留了C语言的底层控制能力,还引入了面向对象的...

    C++面向对象程序设计第02章.ppt

    C++面向对象程序设计第二章 本章主要介绍了C++语言的概述,包括C++的起源、特点、构成等。下面是本章的详细知识点: 一、C++的起源 C++语言是由Bjarne Stroustrup博士在1980年设计的,以C语言为基础,旨在解决...

    VTK一个面向对象的可视化库类.pdf

    VTK由Will Schroeder、Ken Martin 和 Bill Lorensen开发,它利用C++编程语言实现了高度模块化和面向对象的设计。该工具包不仅支持复杂的可视化任务,还具备图像处理和线元素分析等功能,适用于处理标量场、矢量场和...

    sed英文资料2018版by Ken Pizzini, Paolo Bonzini

    标题中的“sed英文资料2018版by Ken Pizzini, Paolo Bonzini”表明文档是由Ken Pizzini和Paolo Bonzini编写,这两人可能是sed工具的开发者或贡献者,文档更新于2018年。sed是“stream editor”的缩写,意为流编辑器...

    前端开源库-kenburns-webgl

    总结来说,kenburns-webgl是一个利用WebGL技术实现的前端库,专注于在网页上创建肯·伯恩斯效果。尽管其可能已废弃,但深入理解WebGL和如何用它来实现动态图像效果仍然是前端开发者提升技能的重要途径。如果你计划...

    前端开源库-kenburns-dom

    **前端开源库——KenBurns-DOM:DOM实现的肯·伯恩斯效果** 在现代网页设计中,视觉效果的创新和动态性是吸引用户注意力的关键要素之一。Ken Burns Effect,也称为“肯·伯恩斯效应”,是一种常见的摄影技巧,通过...

    基于OpenCV实现Ken Burns特效-python源码.zip

    在本资源中,我们关注的是如何使用Python编程语言和OpenCV库来实现Ken Burns特效,这是一种常见的视频制作技术,也被称为“相机移动”或“缩放”特效。Ken Burns效应通常用于历史纪录片,通过在静态图像上应用平移和...

    Ken Burns 特效用到的jar

    《Android开发必知的50个诀窍》一书中《附加 Ken Burns 特效的幻灯片》需要的特效jar

    FCPX使用 Ken Burns 效果平移和缩放片段.pdf

    **FCPX中的Ken Burns效果详解** Final Cut Pro X(FCPX)是一款强大的视频编辑软件,其中包含了许多专业级的特效工具。"Ken Burns效果"是FCPX中的一个经典功能,它以美国纪录片导演Ken Burns的名字命名,常用于制作...

    Java教学大纲总结

    "Java教学大纲总结" 一、课程名称:Java 程序设计 Java 程序设计是工科电类和管理类高年级本科生的专业课。通过本课程的学习,使学生掌握 Java 的基础知识。掌握 JAVA 的 JDK 开发环境和系统配置,能够使用面向...

    Ken Hultgren -动物绘画艺术英文原版

    Ken Hultgren 前迪士尼动画专家提供绘画方面的建议,无论是现实还是漫画。运用线条、刷子手法、建立心情、传递动作等。施工图揭示了动物形象塑造的发展过程。绘制动物个体形态的章节有:狗、猫、马、鹿、牛、狐狸、...

    前端开源库-kenburns-editor

    Kenburns效果通过在图像的不同部分之间平滑地移动焦点,使观众的视线跟随运动,从而创造出深度和动感。 **Kenburns编辑器的功能特性** 1. **可视化编辑**:Kenburns编辑器提供了一个直观的用户界面,允许开发者...

    KenBurns特效,可以控制图片是否自动移动

    KenBurns特效是一种在Android应用中广泛使用的动态图像展示技术,源自于著名的美国纪录片导演肯·伯恩斯(Ken Burns)的摄影手法。这种效果通过平移和缩放图像来创造出深度感和动感,使静态图片仿佛有了生命,通常被...

    Ken的求职代码片段

    【描述】"VC SERVER Ken的求职代码片段 TEST"可能指的是Ken的一个项目,他在其中可能负责了VC(Visual C++)服务器端的开发工作,并且这个部分的代码被用作求职材料。"TEST"可能代表这是Ken对于某个功能或系统进行的...

    附加Ken Burns特效的幻灯片

    Ken Burns特效只不过是视频产品中使用的一种平移和缩放静态图片的特效,要实现该特效,需要使用Jake Wharton开发的Nine Old Androids库。这个库可以让开发者在旧版本上使用Android3.0的动画API。

    仿Ken Burns效果jQuery幻灯片插件

    这是一款仿Ken Burns效果的jQuery幻灯片插件。该幻灯片插件是基于smartcrop.js插件的,smartcrop.js是一款用于剪裁图片的js插件。Ken Burns效果是将图片逐渐平移放大的动画效果。

Global site tag (gtag.js) - Google Analytics