面向对象编程OOP Note

OOP五个基本特性
1. 万物皆对象。
2. 程序是对象的集合,它们通过发送消息来告知彼此所要做的。
3. 每个对象都有自己的由其他对象所构成的存储。
4. 每个对象都拥有其类型。
5. 某一特定类型的所有对象都可以接收同样的消息。

OOP五个不同地方可以存储数据:
1. 寄存器
2. 堆栈
3. 堆
4. 常量存储
5. 非RAM存储

对象初始化地方:
1. 在定义对象的地方
2. 在类的构造器内
3. 正要使用对象之前(惰性初始化)
4. 使用实例初始化

Static 关键字
当声明Static事物时,就意味着这个域或方法不会与包含它的类的任何对象关联在一起。所以即使从未创建某个类的任何对象,也可以调用它的static 方法或访问static域。
Static声明的对象系统只分配一份存储空间。
非Static的对象系统会分配多份存储空间。

final 关键字
final来知之编译器数据是恒定不变的。
1. 一个永不改变的编译时常量。
2. 一个在运行时被初始化的值,而不希望它被改变。

访问权限控制
1. 包访问权限(默认) friendly
包内的所有类都可以访问包内其他类的具有包访问权限的成员。
2. public
对每个成员都可见
3. private
类型创建者和类型的内部方法可见
4. protected
继承的类可见

[JAVA] 面向对象编程OOP Note的更多相关文章

  1. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...

  2. 面向过程编程(OPP) 和面向对象编程(OOP)的关系

    面向过程编程(OPP) 和面向对象编程(OOP)的关系 原文链接:http://blog.csdn.net/phphot/article/details/3985480 关于面向过程的编程(OPP)和 ...

  3. 【软件构造】第三章第四节 面向对象编程OOP

    第三章第四节 面向对象编程OOP 本节讲学习ADT的具体实现技术:OOP Outline OOP的基本概念 对象 类 接口 抽象类 OOP的不同特征 封装 继承与重写(override) 多态与重载( ...

  4. 2016/1/17 笔记 1,面向对象编程OOP 2,类 全

    面向对象编程OOP 编程方式的发展 1,面向过程 重用性低 维护工作量大  2,面向对象 重用性高 维护容易 概念 1,对象 Object 一个具体的事物 是类的实例      2,类Class 同一 ...

  5. JAVA学习(五):Java面向对象编程基础

    Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...

  6. 学习面向对象编程OOP 第一天

    面向对象编程 Object Oriented Programming 一.什么是面向对象编程OOP 1.计算机编程架构; 2.计算机程序是由一个能够起到子程序作用的单元或者对象组合而成.也就是说由多个 ...

  7. JavaScript--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)

    一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 ...

  8. JS--我发现,原来你是这样的JS:面向对象编程OOP[3]--(JS继承)

    一.面向对象编程(继承) 这篇博客是面向对象编程的第三篇,JS继承.继承顾名思义,就是获取父辈的各种"财产"(属性和方法). 怎么实现继承? 我们的JavaScript比较特别了, ...

  9. JS--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)

    一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 ...

随机推荐

  1. 关于Android中查看app安装时间等信息的问题

    PackageManager packageManager=this.getPackageManager(); try { PackageInfo packageInfo=packageManager ...

  2. 更新与升级 FreeBSD

    https://www.freebsd.org/doc/zh_CN/books/handbook/updating-upgrading-freebsdupdate.html 安全补丁存储在远程的机器上 ...

  3. numpy常用用法总结

    numpy 简介 numpy的存在使得python拥有强大的矩阵计算能力,不亚于matlab. 官方文档(https://docs.scipy.org/doc/numpy-dev/user/quick ...

  4. Linux图形&命令行界面切换

    1.实时切换 1.1 命令行->图形 startx 1.2 图形->命令行 Ctrl+Alt+F1--F6 2.启动默认 2.1 启动进入命令行 修改/etc/inittab文件 &quo ...

  5. 原生js实现网页触屏滑动

    前言: 我有一个html格式的2048游戏,可以用键盘上下左右操作,但是放到手机上就抓瞎了.于是想修改一下代码,将键盘事件改成手机触屏事件. html5 的touch事件 html5支持touch事件 ...

  6. 在DCOM 中不存在WORD、EXCEL等OFFICE组件

    DCOM里面没有与office相关的所有组件解决方法:先简单说下,操作步骤(项目演示完成后,补上图): Run MMC -32 File Add Remove Snap-in Component Se ...

  7. JMeter学习(三十五)使用jmeter来发送json/gzip格式数据

    一.使用jmeter来发送gzip数据 有时候我们需要模拟在客户端将数据压缩后, 发送(post)到服务器端. 通常这种情况,会发生在移动终端上. 这样做的好处, 是可以节省流量.  当然, 服务器返 ...

  8. 【转】Linux下apache/httpd服务启动与停止

    apache服务,或者说httpd服务,如何启动,如何开机启动. 转来转去,找不到原文.. 操作系统环境:红帽5,具体如下:# uname -a Linux machine1 2.6.18-164.e ...

  9. lua unit test introduction

    Unit Test Unit testing is about testing your code during development, not in production. Typically y ...

  10. SQLite如何测试

    原文 http://www.sqlite.org/testing.html 目录 1. 介绍 1.1. 执行总结 2. 测试套件 3.异常测试 3.1 内存溢出测试 3.2 I/O错误测试 3.3 c ...