面向对象(Object Orientation Programming)
Three characteristic of object orientation:
- Encapsulation: capturing data and keeping it safely and security from outside interfaces
使用private关键之修饰成员变量,成员方法,被修饰的只能在本类中被使用
public class Student{
private String name;
private int age;
// 每个成员变量对应的有一对setter、getter方法用来访问该成员变量
// this代表所在类当前引用对象的地址值,也就是对象自己的引用
public String getName(){
reurn name;
}
publid void setName(String name){
this.name = name;
}
}
2.Inheritance: This is the process by which a class can be derived from a base class with all features of the base class and some of its own. This increases code reusability
Inheritance:主要解决共性抽取,是多态的前提,没有继承就没有多态
父类、基类、超类
子类、派生类
1.子类可以拥有父类的内容
2.子类还可以拥有自己的特性的内容
3.Java语言是单继承的
4.Java是可以多级集成的
5.一个父类可以有很多的子类
3.Polymorphism: This is the ability to exist in various forms. For example an operator can be overloaded so as to add two integer numbers and two floats and join two Strings.
使用多态的作用:
*1、无论new的时候换成是那个子类对象,等号左边的方法都不会变化,也就是不用管具体是什么类的方法
注意:
1、extends继承和implements实现是多态性的前提
2、在代码中表现为:父类引用指向子类对象,也就是左父右子
父类名称 对象名 = new 子类名称();
or
接口名称 对象名 = new 实现类名称();
多态的好处:父类类型作为方法的形式参数,但是将来调用方法的时候,传递的是子类的对象,用父类类型接收子类对象,使得不同的子类都可以作为这个方法的参数。而且多态规定:方法执行的时候不是父类的方法,而是经过子类重写的方法,也就是同一个方法可以根据不同的子类表现出不同的行为。
成员方法在继承中可以覆盖重写,看new的是谁,就优先使用谁的成员方法,没有就向上找
但是成员变量是不可以覆盖重写的,访问成员变量的2种使用方式
1、直接通过对象名访问成员变量,看等号左边是谁,就优先用谁的成员变量,没有就向上找
2、通过成员方法访问成员变量,看该方法属于谁,就访问的是谁的成员变量,没有还是向上找
面向对象(Object Orientation Programming)的更多相关文章
- ABAP 面向对象(Object Orientation) OO
[转自 http://blog.sina.com.cn/s/blog_7c7b16000101bhof.html]在程序中, 对象的识别和寻址是通过对象引用来实现的, 对象引用变量可以访问对象的属性和 ...
- 面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
一千个读者,一千个哈姆雷特.对于面对对象编程,书上都会告诉我们它有三个基本特性,封装,继承,多态,但谈起对这三点的见解,又是仁者见仁智者见智,感觉还是得多去编程中体验把 . 面向对象编程(OOP, O ...
- 理解JAVA - 面向对象(object) - 属性,方法
理解JAVA - 面向对象(object) - 属性,方法 多态的体现: 向上造型,父类接收子类对象:向上造型: 从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...
- Object Oriented Programming python
Object Oriented Programming python new concepts of the object oriented programming : class encapsula ...
- Java - 面向对象(object oriented)计划 详细解释
面向对象(object oriented)计划 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24058107 程序包括 ...
- Java面向对象 Object类 内部类
Java面向对象 Object类 内部类 知识概要: 一:Object类 二:内部类 匿名内部类的写法 1.Object O ...
- JavaScript: Constructor and Object Oriented Programming
Constructor : Grammar: object.constructor Example: Javascript code: 1 function obj1() { this.number ...
- python, 面向对象编程Object Oriented Programming(OOP)
把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数 ...
- JS面向对象程序设计(OOP:Object Oriented Programming)
你是如何理解编程语言中的面向对象的? 我们研究JS和使用JS编程本身就是基于面向对象的思想来开发的,JS中的一切内容都可以统称为要研究的“对象”,我们按照功能特点把所有内容划分成“几个大类,还可以基于 ...
随机推荐
- 纯CSS画的基本图形(圆形、三角形、多边形、爱心、八卦等)
1.圆形 .circle { width: 100px; height: 100px; background: red; border-radius: 50px; } 2.椭圆 .oval { wid ...
- Apache rewrite地址重写
Apache-rewrite+13个经典案例Apache 重写规则的常见应用(rewrite)一:目的 如何用Apache重写规则来解决一些常见的URL重写方法的问题,通过常见的 实例给用户一些使用重 ...
- [ZJOI2005]九数码游戏(BFS+hash)
Solution 这题的话直接上BFS就可以了,因为要输出方案,所以我们要开一个pre数组记录前驱,最后输出就可以了. 对于状态的记录,一般都用哈希来存,但因为这道题比较特殊,它是一个排列,所以我们可 ...
- tyvj/joyoi 1336 火车进栈
比原题水了很多(因为原题要高精度) 输出字典序前20种出栈序列. 其实是贪心题:我们每次确定一个出栈的数. 当栈里有数时,字典序显然比从后面拿数要小,所以先搜这个. 之后依次搜后面队列里的数,因为字典 ...
- 洛谷P4169 天使玩偶 CDQ分治
还是照着CDQ的思路来. 但是有一些改动: 要求4个方向的,但是可爱的CDQ分治只能求在自己一个角落方向上的.怎么办?旋转!做4次就好了. 统计的不是和,而是——max!理由如下: 设当前点是(x,y ...
- 【洛谷P1082】同余方程
题目大意:求关于 \(x\) 的同余方程 \[ax \equiv 1 \pmod {b}\] 的最小正整数解. 题解:exgcd 板子题. 代码如下 #include <bits/stdc++. ...
- bzoj3829 POI2014 FAR-FarmCraft
题目链接 思路 用\(f[i]\)表示完成第\(i\)棵子树所需要得时间. 考虑如果有两个子树\(a\)和\(b\),如果先去完成子树\(a\),那么对于花费得时间就是\(f[b] + siz[a] ...
- JavaScrip相关知识总结
1.javascript是一种基于对象的语言,其中有四个常用的“全局对象”的成员使用,因为没有“全局对象关键字global”而直接使用,所以感觉像违背了JavaScript基于对象编程的原则,但其实是 ...
- MongoDB 学习记录(二)yum安装
前言:接着上篇继续学习MongoDB,这次学习的是在Linux下安装MongoDB 环境:centos7.3 安装版本:MongoDB4.0 官网安装教程地址 https://docs.mongodb ...
- rewind()函数
函数名: rewind功 能: 将文件指针重新指向一个流的开头用 法: int rewind(FILE *stream);程序例: #include <stdio.h>#include & ...