linkin大话面向对象--封装和隐藏】的更多相关文章

软件开发追求的境界:高内聚,低耦合 高内聚:尽可能把模块的内部数据,功能实现细节隐藏在模块内部独立完成,不允许外部直接干预 低耦合:仅暴露少量的方法给外部使用 到底为什么要对一个雷或者对象实现良好的封装,可以实现以下目的: 1,隐藏类的实现细节 2,让使用者只能通过实现预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问 3,还可以进行数据检查,有利于保证对象信息的完整性 4,便于修改,提高代码的可维护性 为了实现良好的封装,需要从2个方面来考虑 1,把对象的属性和实现细…
内部类说白了就是类中有类 内部类:嵌套类 外部类:宿主类 内部类主要有以下作用:记住了3个字:多继承... 1,内部类提供了更好的封装,可以把内部类隐藏在外部类中,不允许同一个包中的其他类访问该类. 2,内部类可以访问外部类的私有数据,外部类不能访问内部类的实现细节,比如字段. 3,匿名内部类适合用于那些仅需要一次使用的类.比如在命令模式中,当需要传入一个Command对象时,使用匿名内部类将更加方便. 内部类分类,主要有下面4种: 非静态内部类:静态内部类:局部内部类:匿名内部类 非静态内部类…
继承是实现类重用的重要手段,但是它有一个最大的坏处:破坏封装.相比之下,组合也是实现类重用的重要方式,但是采用组合方式实现类重用则能提供更好的封装性.比如人有手一样,在人的类中增加一个手的属性. 何时使用继承呢: 1,子类需要增加额外的属性,不仅仅是属性值的改变 2,子类需要增加自己独有的行为方式 为了保证父类有良好的封装性,不会被子类随意改变,设计父类通常应该遵循以下规则: 1,尽量隐藏父类的内部数据.尽量把父类的所有属性都设置成private访问类型,不要让子类直接访问父类的属性 2,不要让…
我们每天在撸码,那么我们在敲什么东西呢?明显的我们在写类,写一个类,写一个接口,写某个接口里面写一些属性,在某个类里面写一个方法,然后以一个对象调用方法,对于j2ee来讲的话,可能还会写一些jsp,静态的html,还有不可避免的被大家一直诟病的xml配置文件.具体的java语言规范,以后我会专门做整理,在这里我只关注java面向对象. 要说面向对象,核心就是两个东西:类和对象 . 那么什么是类?自定义数据类型,类是某一批对象的抽象,所有的类都是引用数据类型. 什么是对象?具体存在的实体 . 2者…
  先来理解2个概念:闭包和回调   什么是闭包? 闭包是一个可调用的对象,它记录了一些信息,这些信息来自于创建他的作用域.通过这个定义,可以看出内部类是面向对象的闭包,因为他不仅包含了外部类对象的信息,还自动拥有一个指向外部类对象的引用,在此作用域里,内部类有权操作所有的成员,包括外部类的private修饰的成员.   什么是回调? 回调就是对象携带一些信息,这些信息允许它在稍后的某个时刻调用初始化的对象.说白了就是说:某个方法一旦获得了内部类对象的引用,就可以在合适的时候反过来调用外部类实例…
java引用变量有2个类型,一个是编译时类型,一个是运行时类型: 编译时类型:声明的类型,把它看做是什么东西 运行时类型:真正的类型,实际上指的是什么东西 如果编译时类型和运行时类型不同,就出现多态.相同类型的变量,调用同一个方法时呈现出多种不同的行为特征,这就是多态. 注意这个定义里面的关键字:方法.和方法不同,对象的属性不具备多态性. 编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给变量的对象决定.记住下面一句话就好:编译决定类型,运行绑定对象 当一个引用类型的变量若声明为父…
[修饰符] class SubClass extends SuperClass    按照这种关系,我们把SuperClass类称为父类或基类,把SubClass称为子类或派生类或拓展类.extends在英语中是扩展的意思,而不是继承.这 个关键字很好的体现了子类和父类的关系:子类是对父类的扩展,子类是一种特殊的父类.子类扩展了父类,将可以获得父类中所有的属性和方法,但是特别注意的是:java中的子类不能获得父类的构造 器.java.lang.Object是所有类的父类,Object要么是直接父…
   对象的产生格式:类名称  对象名 = new  类名称(); 因为有(),所以是方法,实际上它就是构造方法,并且是非私有的构造方法.如:CellPhone cp = new CellPhone(); 构造器是一个特殊的方法,这个特殊方法用于创建实例时执行初始化.构造器是创建对象的重要途径,即使使用工厂模式,反射等方式创建对象,其实质依然是依赖于构造器,因此,java类必须包含一个或者一个以上的构造器.一旦自己显示的写了构造方法,那么java就不再为我们提供那个隐式的无参构造方法了. 特点:…
GC java的垃圾回机制是java语言的重要机制之一.当程序创建对象,数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中.当这块内存不再被任何变量引用时,这块内存就变成了垃圾,等待系统自动回收.一个对象在堆内存中运行,一共有3中状态:激活状态,去活状态,死亡状态. 值得注意的是:1,垃圾回收机制只负责回收堆内存中的对象,不会回收任何的物理资源(比如数据库连接) 2,程序无法精确的控制垃圾回收的运行,垃圾回收总是在合适的时候来进行. 3,垃圾回收机制在回收任何对…
枚举类(enum) 其实我们使用到枚举的地方还是很多的,其实我们可以完全人工的来实现枚举的功能.比如说我现在手里的项目我就是自己实现的枚举,说白了,枚举就是一个类的多例模式. 1,使用enum声明,默认直接继承了java.lang.Enum类,而不是Object类: 2,枚举类的对象是固定的,实例个数有限,枚举对象后可以跟():跟着()的意思就是在调用相关的构造器,要是不写的话就是在调用默认的构造器. 3,枚举元素必须位于枚举类体中的最开始部分,枚举元素后要有分号与其他成员分隔: 4,枚举类的构…