面向对象(OO)学习笔记

名词解释:面向对象编程 (OOP)、  面向对象分析(OOA) 、面向对象设计(OOD)



1、什么是面向对象思想?

在一个问题域里面,我们首先考虑的是:

第一步:在这个问题域里有那些个对象

第二步:有那些类

第三步:类之间的关系



2、什么是对象、类以及类之间的关系?

  1. 在现实生活中,我们在周边看到的一个个事物。比如:狗、熊猫、电脑、桌子、杯子....等等.。
  2. 在java程序设计当中,对象就是东西,即一切事物既对象。
  3. 类是描述某一类事物相同特征的集合,是对象的模板。比如:动物、人、电脑、车子。
  4. 我们在实际开发中,有许多类,那它们之间的关系有那些呢?

    关联关系:一个类是另外一个类的成员变量,需要另外一个类共同完成

    class A { public B b }                       class B{}

    继承关系:( is a):只要说得通xx是xx,比如:狗是动物、笔记本是电脑、老师是人

    class A{}                                           class B extends A{ }

    依赖关系:一个类的方法和另外一个类相关

    class A{ public void say(B b )}       class B{}

    类中可以声明:属性、方法、构造器;属性(变量)分为:成员变量和局部变量

    成员变量用来定义类的结构,在创建对象的时候就在内存堆中分配空间,成员变量有默认值(基础数据类整数为0,引用类型默认为null),不初始化就可以参与运算。

局部变量定义在方法中,在运行时候在栈中分配内存空间,必须初始化,才能运算(先赋值,再运算)



3、this和super关键字的区别?

4、构造器?

5、访问控制符

6、对象的创建过程?

7、面向对象的三大特征?

1)封装

2)继承

3)多态

也可以算上抽象

8、抽象

9、接口

10、内部类

11、向上转型、向下转型

12、单实例

13、反射机制?

面向对象(OO)学习笔记

时间: 2025-01-05 03:29:34

面向对象(OO)学习笔记的相关文章

面向对象先导学习笔记

面向对象先导学习笔记 经过了Python.C语言和数据结构的学习,感觉对于Java这门新学习的语言上手速度明显快了许多.在学习Java的过程中,个人觉得Java的语法规则在很大程度上与C类似,但是在设计程序和具体实现的过程中,更偏向于Python的思路,尤其是对于方法的调用和自带数据结构的使用方面. 数据类型的Java实现 Java自带了大量的数据类型,在完成作业的过程中,个人尝试通过手写二叉树完成问题,但是与Java自带的数据结构相比,无论是在稳定性和运行速度方面都有所欠缺.但是通过自己的摸索

PyTorch框架+Python 3面向对象编程学习笔记

一.CNN情感分类中的面向对象部分 sparse.py 1 super(Embedding, self).__init__() 表示需要父类初始化,即要运行父类的_init_(),如果没有这个,则要自定义初始化 1 self.weight = Parameter(torch.Tensor(num_embeddings, embedding_dim)) Parameter跳转 1 class Parameter(Variable): 2 """A kind of Variabl

《Python核心编程》 面向对象编程学习笔记

1. 1. 引言 1. 类与实例 可以定义一个本身没有任何属性的类,而仅把它用做数据的名字空间,这样的类仅作为容器对象来共享名字空间. 示例如下: class MyData(object): pass 下面创建它的实例,它只使用类作为名称空间容器. >>> mathObj = MyData() >>> mathObj.x = 4 >>> mathObj.y = 5 >>> mathObj.x + mathObj.y 9 >>

C#面向对象的学习笔记

1.面向对象的3要素: 封装:将不需要显示的代码封装到一个方法中,只对外提供方法名,用户不需关心内部实现. 继承:子类继承父类,公用父类的代码,大大提高了代码的重用,贴近生活也符合人类的编程思想. 多态:使一样的方法具有不同的实现效果,大大简化了开发的难度.实现接口和继承父类都能实现多态. 其他术语: 接口[interface]:接口提供一套规则继承接口的子类都必须实现其中的方法,也是实现多态的一个途径. 结构[struct]:结构是一个特殊的类,但是是值类型,且里面的字段不允许初始化,类可以.

JavaScript面向对象编程学习笔记

1  Javascript 面向对象编程 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上. 自动含有一个constructor属性,指向它们的构造函数. Javascript还提供了一个instanceof运算符,验证原型对象与实例对象之间的关系. Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象.这个对象的所有属性和方法,都会被构造函数的实例继承.

Java面向对象开发学习笔记(一)

Java面向对象开发 阿里云课程链接 共105课时 课时1 面向对象简介 面向对象是一种程序设计方法,但是并不是所有开发者都认同面向对象,因为很多开发者认为面向对象过于复杂,所以更多人愿意使用函数式编程. 面向对象的前身是面向过程,如果要想笼统地解释这两种开发模型的区别,最好的例子:面向过程是解决问题,而面向对象是模块化设计.对于现在的程序开发,更多情况下就像是汽车组装一样,不同的工厂生产不同的配件.将所有的零件组装在一起,就可以形成一辆汽车,并且当某一个零件坏掉的时候,还可以进行配装. 在面向

ECMAScript 面向对象JS学习笔记1

1.对象的 prototype 属性,可以把它看成创建新对象所依赖的原型.===在我理解,就是prototype下设置的字段是唯一性的,共享性的,不管创建多少个对象,所处空间都是不变的,没有增加也没有减少,指向的指针都是指向那最初的地方. 教程: http://www.w3school.com.cn/js/pro_js_object_defining.asp 1 function Car(sColor,iDoors,iMpg) { 2 this.color = sColor; 3 this.do

class面向对象编程学习笔记

1.__ intit__(self,x,xx,xxx,...) 采用__ init__(self,,xx,xxx,xxxx,...)方法在创建实例时就把属性绑上去,第一个参数一定是self,self指向创建的实例本身 和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,其他并没有什么差别.但是采用对象编程的一个特点就是数据封装 和静态语言不同,python允许对实例变量绑定任何数据,比如原本Student类中只有name,score两个属性,但是bart.age

Python学习笔记基础篇——总览

Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列表.字典.主文件判断.对象 Python学习笔记——基础篇1[第三周]——set集合 Python学习笔记——基础篇2[第三周]——计数器.有序字典.元组.单(双)向队列.深浅拷贝.函数.装饰器 Python学习笔记——基础篇[第四周]——迭代器&生成器.装饰器.递归.算法.正则表达式 Python

《JavaScript高级程序设计》学习笔记12篇

写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的东西进去 目录 JS学习笔记1_基础与常识 JS学习笔记2_面向对象 JS学习笔记3_函数表达式 JS学习笔记4_BOM JS学习笔记5_DOM JS学习笔记6_事件 JS学习笔记7_表单脚本 JS学习笔记8_错误处理 JS学习笔记9_JSON JS学习笔记10_Ajax JS学习笔记11_高级技巧