java面向对象编程知识点总结
一:今天完成
上午详细了解了java面向对象编程的一些细节,记录如下。
1)类
是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法、初始化程序和嵌套类型。
常用成员有四种:类字段、类方法、实例字段、实力方法。
其它引用类型还包括数组、接口、枚举和注解。
2)字段和方法
示例:一个简单的类和成员
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public class Circle{ //类字段 public static final double PI= 3.14159 ; //类方法 public static double radiansToDegrees( double radians){ return radians * 180 / PI; } //实例字段 public doule r; //两个实例方法 public double area(){ return PI*r*r; } public double circumference(){ return 2 *PI*r; } } |
还有就是this的使用,它竟然是一个隐式参数!第一次知道,,也可能是我之前没留意。意义是“在当前对象上调用实例方法”。
3)创建和初始化对象
构造方法看作是类成员,可以定义多个构造方法,只要参数列表不一样就行。在一个构造方法中也可以调用其它构造方法,可以避免大量的初始化代码。
4)子类和继承
对于super关键字,需要了解的是:在子类中调用超类构造方法时必须在第一个语句中调用。代码如下
1
2
3
4
5
|
publc PlaneCircle( double x; double y; double r){ super (r); //调用超类的circle()构造方法 this .cx=x; this .cy=y; } |
这里面涉及到构造方法链,就是创建对象时的一系列构造方法,从子类到顶端的Object类为止。
如何引用被遮盖的字段?把this(或 类的实例)矫正为适当的超类,然后再访问字段。
例如有三个类A、B和C。它们都定义了一个x的字段,并且C是B子类,B是A子类,那么,在C中可以这样
1
2
3
4
5
6
7
8
9
|
x; //c类 this .x; //c类 super .x; //B类 ((B) this ).x;/B类 ((A) this ).x; //A类<br>类似的,如果c是C的实例,那可以这样引用<br>c.x;<br>((B)c).x<br>((A)c).x |
还需要分清方法覆盖和字段遮盖。
注意调用覆盖方法时的super和调用超类时的super用法是不一样的。
5)数据隐藏和封装
java的包不能“嵌套”,比如java.A.a和java.A是不同的包
对于访问控制和继承,如下
总结了一下成员访问规则,如下
对于有些数据访问器方法(getter,setter),需要记住的是,public方法访问字段可以进行检查。
6)抽象类和方法
有些抽象类可以没有任何抽象方法,比如classLoder。
示例代码:一个抽象类和两个具体类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public abstract class Shape{ //两个抽象方法 public abstract double area(); public abstract double circumference(); } //具体子类 class Circle extends Shape{ public static final double PI= 3.14159265358 ; //类字段 protected double r; //实例字段 public Circle( double r){ this .r=r} //构造方法 public double getRadius(){ return r;} //访问器 public double area(){ return PI*r*r ;} //实现的两个抽象方法 public double circumference(){ return 2 *PI*r ;} } |
对象之间也可以发生转换,分为放大和缩小转换
1
2
|
Object o= "string" ; //放大 String s= (String)o; //缩小 |
数组转换规则只适用由对象或数组 组成的数组,基本类型的数组不能转换。
二:下午计划
看完并记录java类型系统这一章,有时间的话开始做那个任务一的第一个板块
三:遇到问题
为什么感觉平时写代码没有感觉到有这么多的知识点?是没用到吗?还是自己缺少思考?
四:收获感悟
相对于其它面向对象的语言,java真可以说的上是入门首选,即便它有时候会显得啰嗦一点。
java面向对象编程知识点总结的更多相关文章
- Java面向对象编程基础
一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...
- java 面向对象编程。。。。
经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...
- 《Java面向对象编程》
<Java面向对象编程> 第11章 对象的生命周期 11.1 创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Const ...
- JAVA面向对象编程课程设计——网络版单机斗地主
一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...
- JAVA面向对象编程课程设计——web版斗地主
一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...
- Java面向对象编程(一)
由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...
- JAVA学习(五):Java面向对象编程基础
Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...
- (一)如何理解java面向对象编程
哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...
- java面向对象编程思想的理解
1.我们总说java是一门面向对象编程的语言,那什么是面向对象呢? 我是这样理解的,对象是事物存在的实体,如,猪.狗,花早等都是对象,对象由两部分组成.面向对象编程的三大特点:继承,多态,类是封装对象 ...
随机推荐
- 安卓查看包名,activity方法
https://www.cnblogs.com/wangcp-2014/p/6144530.html 一.有源码情况 直接打开AndroidManifest.xml文件,找到包含android.int ...
- Qt中重绘制窗口方法:
void CircleWidget::paintEvent(QPaintEvent * event) { QPainter painter(this); int wight = this->wi ...
- linux就该这么学之新手必须掌握的linux命令
常用的系统工作命令 1echo:用于在终端显示字符串或变量 格式为:“echo [字符串|变量]” 2date:用于显示/设置系统的时间或日期 格式为:“data[选项][+指定格式]” 3rebot ...
- Oracle数据库实现获取前几条数据的方法
如何在Oracle数据库中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法.本文将告诉您答案,举例说明了哟! 1.在Oracle中实现SELECT TOP N : ...
- ES6里关于数字的拓展
一.指数运算符 ES6引入的唯一一个JS语法变化是求幂运算符,它是一种将指数应用于基数的数学运算.JS已有的Math.pow()方法可以执行求幂运算,但它也是为数不多的需要通过方法而不是正式的运算符来 ...
- README.md文档
大标题 =================================== 大标题一般显示工程名,类似html的\<h1\> 你只要在标题下面跟上=====即可 中标题 ------- ...
- vscode - 安装离线插件
打开网站(示例): https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow 下载扩展 vscode 安装离 ...
- xUtils介绍 -- DbUtils、ViewUtils、HttpUtils、BitmapUtils
转载注明出处:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的ht ...
- 【BIEE】分析的解析机制
今天使用BIEE时意外的发现个问题,BIEE在展示结果时候,是先进行排序,然后再展示.具体测试案例如下: 首先,存在如下数据: 在BIEE展示效果如下: 目前是根据O1,02,03,04,05,06, ...
- Linux 查看某个程序所在端口的 PID
lsof -i:8085 加入显示的是2001 kill 2001 就可以杀死程序了