面向对象方法

面向对象 三 (三大特性)

可紊 提交于 2020-03-18 07:47:39
封装,继承,多态 一: 了解什么是封装: 就象一个盒子,你不需要知道里面有什么东西,只知道它有那些用处就行,能够为你提供相对应的方法. 封装的意义: 封装的意义在于保护或者防止 代码 (数据)被我们无意中破坏。 保护成员属性,不让类以外的程序直接访问和修改; 隐藏方法细节 关于对象封装的原则: 内聚:内聚是指一个模块内部各个部分之间的关联程度 耦合:耦合指各个模块之前的关联程度 封装原则:隐藏对象的属性和实现细节,仅对外公开访问方法,并且控制访问级别 在面向对象方法中,用类来实现上面的要求。用类实现封装,用封装来实现高内聚,低耦合。 1.1 了解访问权限修饰符 所谓访问权限,指的是本类的成员变量、成员方法和内部类对其他类的可见性。 Java一共有四种访问权限,按照权限由大到小分别为public、protected、default和private,如果省略了访问修饰符,那访问权限就是defualt。四种访问权限的含义和权限控制见下面表格: 注意:所谓的访问,有两种方式,直接访问和通过对象访问。 封装代码例: public class House { // 私有化属性 private String cookroom; private String bathroom; private String bedroom; private String parlor; public String

面向对象设计的一些原则

泪湿孤枕 提交于 2020-03-18 06:58:24
面向对象设计的一些原则 “开—闭”原则 面向对象设计的基石是“开—闭”原则。“开一闭”原则讲的是:一个软件实体应当 对扩展开放,对修改关闭 。这个规则说的是,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。从另外一个角度讲,就是所谓的“对可变性封装原则”。 “对可变性封装原则”意味着两点: 一种 可变性 不应当散落在代码的很多角落里,而 应当被封装到一个对象里面 。同一种可变性的不同表象意味着同一个继承等级结构中的具体子类。 一种可变性不应当与另一种可变性混合在一起。即 类图的继承结构一般不应超过两层 。 做到“开—闭”原则不是一件容易的事,但是也有很多规律可循,这些规律同样也是设计原则,它们是实现开—闭原则的工具。 里氏代换原则 如果 一个软件实体使用的是基类的话那么也一定适用于子类 。但反过来的代换不成立。 如果有两个具体类A和B之间的关系违反了里氏代换原则,可以在以下两种重构方案中选择一种: 创建一个新的抽象类C,作为两个具体类的超类 ,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。 从B到A的继承关系改写为委派关系 。 咋一看觉得这个怎么还是面向对象设计的原则呢?这个明明就是Java的语法规则。对,Java是提供了对里氏代换原则在语法上的支持。但是仅仅是语法上,在和现实世界的相符合程度上根本没有提供

面向对象是个骗局?!

不问归期 提交于 2020-03-17 14:51:45
今天在网上看到网页叫“Object Orientation Isa Hoax”——面向对象是一个骗局,标题很有煽动性(注:该网站上还有一个网页叫Object Orientation Is Dead),好吧,打开看看上面有些 什么,发现这个网页是在收集一些关于“面向对象的反动言论”,没想到的是,很多言论出自很多大师之口。比如:Alexander Stepanov和Bjarne Stroustrup。这些言论挺有意思的,所以,我摘两段在下面: 第一段是Alexander Stepanov的(不要告诉我你不知道这个人,STL之父,关于他的故事,可以到这里看看)。他N年前作过一段采访,其中有一个问答被上述的那个面向对象反动言论的网页收录了: Alexander Stepanov Question: I think STL and Generic Programming mark a definite departure from the common C++ programming style, which I find is almost completely derived from SmallTalk. Do you agree? 提问: 我认为STL和泛型编程标志着非同一般的C++编程风格,而一般C++风格几乎完全是从SmallTalk派生过来的。你同意吗? Answer: Yes

面对对象 一

邮差的信 提交于 2020-03-17 07:51:12
了解什么是面对对象 oop 看看什么是OOP,Object Oriented Programming,原来就是面向对象的编程啊,还有OOD(面向对象的设计),OOA(面向对象的分析)。那什么是面向对象呢?要想了解这个问题我们要先了解面向过程,这样对比我们就好理解了。 很早很早以前的编程是面向过程的,比如实现一个算术运算1+1 = 2,通过这个简单的算法就可以解决问题。但是随着时代的进步,人们不满足现有的算法了,因为问题越来越复杂,不是1+1那么单纯了,比如一个班级的学生的数据分析,这样就有了对象这个概念,一切事物皆对象。将现实的事物抽象出来,注意抽象这个词是重点啊,把现实生活的事物以及关系,抽象成类,通过继承,实现,组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。这是一次飞跃性的进步。 举个最简单点的例子来区分 面向过程和面向对象 有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择 1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。 2、去饭店,张开嘴:老板!来一份鱼香肉丝! 看出来区别了吗?这就是1是面向过程,2是面向对象。 面向对象有什么优势呢?首先你不需要知道鱼香肉丝是怎么做的,降低了耦合性。如果你突然不想吃鱼香肉丝了,想吃洛阳白菜,对于1你可能不太容易了,还需要重新买菜,买调料什么的。对于2,太容易了,大喊:老板

面向对象

蓝咒 提交于 2020-03-16 11:08:52
1.面向对象三大特征:封装,继承和多态 2.类和对象 对象:客观存在的实体.java中万事万物皆对象 类:产生对象的模板,具有相同特征和公共行为的对象的集合。 类中包含属性和方法 [< modifiers>] class 类名{ //属 性 [< modifiers>] type < attr_name>[=defaultValue] ; //方法 // 修饰符 static|不带static 返回值类型 方法名 参数列表 [< modifiers>] < modifiers> <return_type> <name>([< argu_list>]) { //方法体 [< statements>] } } 如: public class Dog { //成员变量或属性:描述特征 public String color="黑色"; public String brand="黑贝"; public char sex = '公'; public int age; //方法是描述行为或功能 //看门 public void bite(){ System.out.println(color+"颜色的"+brand+",性别为"+sex+",年龄是"+age+",在看门!"); } } 3:访问类中方法 在不同类中: 类名 对象名 = new 类名(); 对象名.方法名(); 方法属性:

java第五章:面向对象(oop)

时光毁灭记忆、已成空白 提交于 2020-03-16 11:07:46
对象 :具有特征和功能的实例。 类 :是对对象的抽象,是人们脑海中的概念,是具有共同特征或相同行为的对象的集合,利用类可以创建对象; 创建类:[修饰符] class 类名{                 创建对象:类名 对象名 = new 类名();   属性:类似于变量的命名,[修饰符] 数据类型 属性名    类比:Scanner input = new Scanner(System.in);   方法:[修饰符] 返回值类型 方法名(形参列表){     访问属性并赋值:对象名.属性名 = 值;         方法体;                 访问方法(非static): 对象名.方法名(); }                             访问静态方法:类名/对象名.方法名(); } 成员变量和局部变量的区别: 1.作用域不同:成员变量作用于当前整个类体;局部变量只作用于当前方法。 2.声明之后是否具有初始值:成员变量有,int类型0、String类型null、double类型0.0、boolean类型false;              局部变量没,必须声明赋值之后才能使用。 3.在内存的位置不同:局部变量存放在栈内存中,方法调用完毕之后会自动释放内存;new出来的存放在堆内存,需要JVM的垃圾回收机制来回收(gc);方法区存放的是类的信息

面向对象的三个基本特征

♀尐吖头ヾ 提交于 2020-03-16 11:06:15
面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是 “ 继承 ” 。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为 “ 基类 ” 、 “ 父类 ” 或 “ 超类 ” 。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过 “ 继承 ” ( Inheritance )和 “ 组合 ” ( Composition )来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力; Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是 “ 属于 ” 关系。例如, Employee

面向对象的三个基本特征

时光怂恿深爱的人放手 提交于 2020-03-16 11:05:00
面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是 “ 继承 ” 。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为 “ 基类 ” 、 “ 父类 ” 或 “ 超类 ” 。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过 “ 继承 ” ( Inheritance )和 “ 组合 ” ( Composition )来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力; Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是 “ 属于 ” 关系。例如, Employee

C++编程之面向对象的三个基本特征

六月ゝ 毕业季﹏ 提交于 2020-03-16 11:03:29
面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力; Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承

面向对象的三个基本特征

為{幸葍}努か 提交于 2020-03-16 11:02:23
面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是 “ 继承 ” 。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为 “ 基类 ” 、 “ 父类 ” 或 “ 超类 ” 。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过 “ 继承 ” ( Inheritance )和 “ 组合 ” ( Composition )来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力; Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是 “ 属于 ” 关系