一.封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和方法都是类的成员.封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员. 理解 开车时,我们不需要知道发动机的运转原理: 开飞机时,我们不需要知道是什么驱动螺旋桨来转动的: 思想 高内聚,低耦合: 原则 把尽可…
"算法+数据结构=程序"是一句经典名言,这句话很直接的说明了程序的本质:处理数据.产生结果.即便是最简单的HelloWorld程序,我们也可以将字符串"HelloWorld"视作数据,将输出操作视作算法. 但是在实际编程的时候,如何安置程序中的算法和数据就成了一个大问题.随着程序规模的增长,程序需要处理的数据可能会越来越多,需要用到的算法也会越来越多,以贪吃蛇为例,如果简单的将游戏需要的数据堆在程序的头部,就会变成下面的样子,各种互不相干的数据堆在一起: 用于实现游…
抽象类 一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰.因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错.因此,抽象方法实际上相当于定义了"规范". 抽象方法的类都是抽象类,抽象类不全是抽象方法. 面向抽象编程的本质就是: 上层代码只定义规范(例如:abstract class Person): 不需要子类就可以实现业务逻辑(正常编译): 具体的业务逻辑由不同的子类实现,调用者并不关心…
一.面向对象与面向过程 1.面向过程 角度是功能,以方法为最小单位,思考的是具体怎么做. 2.面向对象 角度是抽象,以类为最小单位,思考的是谁来做. 3.示例:“小明去上班” 面向过程 起床,刷牙洗脸,出门,打车,上车,出发,上班: 面向对象 小明: 起床,刷牙洗脸,出门,打车,付钱,上班: 司机: 开车,收钱 车: 跑 二.类和对象 1.概述 类 属性,方法,构造器,代码块: 类属性,静态方法,静态代码块: 内部类,匿名内部类: 对象/实例 类(模板,图纸,规范) -> 对象(实实在在的”生物…
一.Java编程中对象和类的概念 1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么是对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于类与对象的描述:类是对象的模版,对象是类的一个个体 3.类的语法格式 修饰符 class 类名{ 属性声明: 方法声明: } 说明:1.修饰符public:类可以被任意访问 2.类的正文要用{ }括起来 4.对象是根据类创建的.在Java中,使用关键字new来创建一个新的对象.创建对象需要以下三步:…
一.方法的可变个数的参数. 问题:我们能够打印的信息都是来源于方法的参数,也就是形参的传递.那如何要给方法传递不同的参数? .1.采用数组形参来定义方法 public static void test(int a, String[] books); 2.采用可变个数形参来定义方法 public static void test(int a, String... books); 说明:1.可变参数:方法参数部分指定类型的参数个数是可变多个 2.声明方式:方法名(参数的类型名... 参数名) 3.可…
一.类的属性 1.语法格式 修饰符 类型 属性名 = 初值 说明:修饰符private:该属性只能由该类的方法使用.在同一类内可见.使用对象:变量.方法. 注意:不能修饰类(外部类)    修饰符public:该属性可以被该类以外的方法访问.对所有类可见.使用对象:类.接口.变量.方法       类型:任何基本类型,如int.boolean或任何类 补充:修饰符可以用来修饰变量,可以指明变量是公有还是私有,私有的变量不能通过 对象.属性 的方式调用 2.变量的分类: 1.成员变量:在方法体外,…
面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:假设不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这样的类作用域的层次嵌套使我们能够直接訪问基类的成员,就好像这些成员是派生类成员一样: Bulk_item bulk; cout << bulk.book() << endl; 名字book的使用将这样确定[先派生->后基类]: 1)bulk是Bulk_item类对象,在Bulk_item类中查找,找不到…
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ public static void main(String[] args) { ProcessArray pa=new ProcessArray(); int[] target={5,35,-2,35,-21}; pa.process(target, new Command(){ //匿名内部类…
Python 面向对象编程 继承 和多态 一:多继承性 对于java我们熟悉的是一个类只能继承一个父类:但是对于C++ 一个子类可以有多个父亲,同样对于 Python一个类也可以有多个父亲 格式: class 子类(父类1,父类2...): 如代码:我们创建 人类,课程类,学生类继承人类,大学生类继承学生类和课程类,也就是说大学生类,有 学生类,课程类,人类等特性: # python 多继承 class Person: #声明人类 def __init__(self, name, age): s…