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真可以说的上是入门首选,即便它有时候会显得啰嗦一点。
转载于:https://www.cnblogs.com/yishengyishiduaini321/p/6534404.html
java面向对象编程知识点总结相关推荐
- 八、Java面向对象编程(类、对象、方法、重载、可变参数、作用域、构造器、this本质)
文章目录 Java面向对象编程(类.对象.方法.重载.可变参数.作用域.构造器.this本质) 一.类与对象 1. 类与对象的引出 2. 使用现有技术解决 3. 现有技术解决的缺点分析 4. 类与对象 ...
- java面向对象编程精讲
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.包 1.1导入包中的类 1.2静态导入 1.3将类放到包中 1.4包的访问权限控制 1.5常见的系统包 二.继承 ...
- 能听懂的Java面向对象编程-雷伟-专题视频课程
能听懂的Java面向对象编程-2605人已学习 课程介绍 通过本课程的学习,学生能掌握面向对象的程序设计思想,并能运用Java技术和相关开发工具进行计算机软件代码的设计. 课程内容并非 ...
- Java面向对象编程篇6——注解与反射
Java面向对象编程篇6--注解与反射 1.注解概述 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制 Java 语言中的类.方法.变量.参数和包等都可 ...
- Java面向对象编程篇5——枚举
Java面向对象编程篇5--枚举 1.枚举的概念 在日常生活中这些事物的取值只有明确的几个固定值,此时描述这些事 物的所有值都可以一一列举出来,而这个列举出来的类型就叫做枚举类型 2.枚举的定义 使用 ...
- Java面向对象编程篇4——内部类
Java面向对象编程篇4--内部类 1.内部类的概念 当一个类的定义出现在另外一个类的类体中时,那么这个类叫做内部类 (Inner),而这个内部类所在的类叫做外部类(Outer). 类中的内容:成员变 ...
- Java面向对象编程篇3——接口与抽象类
Java面向对象编程篇3--接口与抽象类 1.接口(interface) 接口中可以含有变量和方法.但是要注意,接口中的变量会被隐式地指定为public static final变量(并且只能是pub ...
- Java面向对象编程篇2——面向对象三大特点
Java面向对象编程篇2--面向对象三大特点 1.封装 1.1.封装的概念 通常情况下可以在测试类给成员变量赋值一些合法但不合理的数值,无 论是编译阶段还是运行阶段都不会报错或者给出提示,此时与现实生 ...
- Java面向对象编程篇1——类与对象
Java面向对象编程篇1--类与对象 1.面向过程 1.1.概念 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 1.2.优缺点 优点:性 ...
最新文章
- Scrum卡片层次图
- 得到的旋转向量和平移向量转换成旋转矩阵 (SE(3))
- javascript——Array类型
- python字典键值可以是元组吗_python元组与字典
- Java web后端6 java Bean EL表达式
- 计算机网络3-DNS域名解析系统
- Delphi以GDI+制作桌面歌词效果
- 拓扑排序 Codeforces Round #290 (Div. 2) C. Fox And Names
- phpstom怎样导出数据库_用phpStorm的数据库工具来管理你的数据库
- 作曲大师2019破解版|作曲大师音乐梦想家2019破解版下载 v2019.9(附安装破解图文教程)
- 解决win10中无法打开CHM文件的方法
- CAD如何自定义快捷键
- 一文搞懂Overleaf(Latex)中的Environment和\newenvironment命令
- zabbix清除历史数据
- 制作一个简单七夕情人节表白网页(HTML+CSS)
- 【转】U-Boot启动过程--详细版的完全分析
- pandas 选取指定列
- 淄博烧烤火了,其他的烧烤靠什么火呢
- GetKeyState、GetAsyncKeyState、GetKeyboardState函数的区别:
- 恶意代码修改IE和注册表恢复全集
热门文章
- html交互式添加线要素,HTML5 Canvas绘制交互式交叉线
- 百度地图 js 在安卓端手指缩放无效_利用百度地图绘制3D轨迹演示
- python是一种跨平台开源免费的高级动态编程语言吗_第1章 管中窥豹:Python概述免费阅读_Python程序设计开发宝典免费全文_百度阅读...
- 怎么用cmb运行c语言文档,关于化学质量平衡(CMB)受体模型应用中若干技术问题的研究-环境科学专业论文.docx...
- go语言用html桌面,Go语言实现简单的一个静态WEB服务器
- python正则匹配ip地址_Python正则表达式匹配和提取IP地址
- 在 Linux 上创建一个加密文件保险库
- 【热点】黑客入侵的常用手段及防护措施分析
- linux怎么进入gnu grub_十项Linux常识,你知道吗?
- 演进实录|不同阶段的企业如何搭建监控体系?