JAVA内容回顾(二)——面向对象(OOP)
1.类与对象
类:类指的是同种对象的抽象,看不见摸不着的。包含有属性与方法。
对象:是类的具体实现,看的见摸得着的东西。
类是对象的抽象,对象是类的具体实现。
2.访问修饰符
public:在项目的任何地方都可以用。
protected:在类中、包中、子类中。
默认:在类中、同包中可以使用。
private:只能在本类中使用。
3.封装:公开对外的接口,隐藏内部的具体实现。
(1)私有化属性。
(2)为属性提供一个公共的get与set方法。
(3)其他操作。
4.构造方法:(构造函数)实例化对象的时候调用的方法,实例化对象。
在一个类中如果没有显示的定义构造方法,系统会默认个一个不带参数的构造方法。
5.类中的方法:
访问修饰符 返回值类型 方法名(参数列表){
return 返回值类型的对象
}
6.形参与实参
形参:形式参数:方法定义的时候才有的说法,类型变量名。
实参:实际有值得参数,在调用方法的时候才有的说话,一个已经赋值的变量。
7.构造方法的重载
同一个名字的方法在一个类中只能出现异常,如果出现多次,参数列表必须要不一样。
如果一个一个类中同名的方法出现了多次,那么这些方法就叫做方法的重载。
java会根据参数列表自动的去匹配对应的方法。
8.static关键字
static关键字修饰的属性属于类所有,被对象所共享 在类加载的时候初始化。
static关键字修饰的方法属于类所有(静态方法),必须创建对象通过对象调用。
非静态的方法中可以使用非静态的属性和方法、已经静态的属性和方法。
优先性:
静态属性>静态代码块>静态方法>非静态属性>非静态代码块>非静态方法
静态属性、静态代码块、静态方法都只会在类加载的时候执行一次
总结:对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
9.继承:子类可以沿用父类的某些行为与特征的的一种形式的实现,易于程序的扩展。
关键字extends
this指当前对象,可以访问本类中的属性与方法,同时也可以访问父类中的可以访问的属性和方法(public proctected修饰的)。
super指的是父类对象,可以访问父类中的可以访问的方法。
注意:super与this都可以条用对应的类中的构造方法,但是出现在构造方法中只能出现在第一行。
子类可以继承父类中public、proctected访问修饰符所修饰的属性与方法,不能继承private、 默认 访问修饰符修饰的方法还有构造方法不能被继承。
父类类型指向子类对象:
父类类型 对象名= new 子类类型();
子类类型的对象可以用一个父类类型的变量去接收,但是接收后只能使用父类中的可以使用的属性与方法。
若要使用子类对象的方法与属性必须要进行强制类型转换。
继承的特点:
继承具有单一性。一个类只能有一个父类。
继承具有传递性:一个类不仅仅可以使用其直接父类的属性与方法还可以使用其父类的父类的属性与方法。
9.final关键字
final关键修饰的变量叫做常量,常量在声明的时候必须赋初始值。常量的变量名一般都是全大写。
final修饰的方法是最终的方法,不可以被重写。
final修饰的类是最终的类,不能被继承。
10.多态:同种方法的实现效果不同
实现多态的两种方式:重载与重写
重载:在同一个勒种,方法名一样、参数列表不一样包括数量、顺序、类型,与返回值类型没有关系。
重写:在有父子关系的多个类中,方法名一样、参数列表一样、子类的返回值类型只能小于等于父类的返回类型且访问修饰符不能比父类的访问范围小。
11.抽象类:相当于一个类的模板,用于类的扩展,或者说是父类对子类的规定(这个规定就是抽象方法)
抽象类的语法:
abstract class 类名{}
特点:
1.在抽象类中可以有抽象的方法也可以没有抽象方法,也可以有方法的具体实现。
2.有抽象方法的类必须是抽象类。
3.子类继承抽象类之后必须要实现抽象类中的抽象方法,除非子类也是抽象类。
4。抽象类可以有构造方法,但是不能被实例化。
12.接口:接口里面只有常量和方法的声明
特点:
1.接口使用interface关键字修饰。
2.接口中只有常量和方法的声明。
3.接口支持多继承。
4.要实现接口必须要实现接口中所有的方法与声明。
5.一个类可以实现多个接口 。
6.接口不能有构造方法,而且接口不能实例化。
7.接口中的常量的public static final可以省略。
8.接口中的方法可以省略public abstract。
9.实现接口的关键字mplements。
JAVA内容回顾(二)——面向对象(OOP)的更多相关文章
- JAVA内容回顾(一)——基本语法
一.基本数据类型 1.标识符. 标识符由字母.数字.下划线和美元符组成. 标识符不能是JAVA的关键字与保留字,但是可以包含其内. 标识符区分大小写.标识符长度没有限制.标识符不能含有空格. 2.注释 ...
- java基础回顾(二)——内部类
一.常规内部类 public class Outer { int count; void say(){ count++; System.out.println("我是外部类"); ...
- java基础复习二——面向对象一
面向对象三大特性:封装,继承,多态 类:对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义 对象:是实际存在的该类事物的每个个体,也称为实例 类之间三种关系:依赖关系(uses-a) ...
- Java学习笔记(二) 面向对象---构造函数
面向对象---构造函数 特点 函数名与类名相同 不用定义返回值类型 不写return语句 作用 对象一建立,就对象进行初始化. 具体使用情况 class Student { Student(){ Sy ...
- Java实验报告二:Java面向对象程序设计
Java实验报告二:Java面向对象程序设计 ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- 2018-2019-2 20175306实验二面向对象程序设计《Java开发环境的熟悉》实验报告
2018-2019-2 20175306实验二面向对象程序设计<Java开发环境的熟悉>实验报告 面向对象程序设计-1 实验要求: 参考:> http://www.cnblogs.c ...
- 2018-2019-20175205实验二面向对象程序设计《Java开发环境的熟悉》实验报告
2018-2019-20175205实验二面向对象程序设计<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>< ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...
随机推荐
- MySQL 的 phpmyadmin上传大小限制(转)以及 MySQL server has gone away 的解决办法
phpmyadmin上传大小限制 原帖地址:http://www.hmidc.com/home/news/?13914.html 时间:2011-6-21 11:17:57 作者:红帽之家 来源: ...
- 汇编条件判断整理(JCC,CMP/TEST的实现)
比较的实现 我们知道CMP是比较两个寄存器内容的指令,但这是如何实现的? 当执行到CMP指令的时候会读取这两个寄存器的内容,并加以减法运算,结果本身不保留,并按照结果设置符号位(属算术运算). CMP ...
- 基于node.js构建微服务中的mock服务
缘起 由于现在微服务越来越火了,越来越多的微服务融入到了日常开发当中.在开发微服务的时候,经常会遇到一个问题由于依赖于其他服务,导致你的进度受到阻碍.使你不得不先mock出你期望调用依赖服务的输出,来 ...
- Js-Html 前端系列--页面撑开头尾
今天学习过程中,发现一个超实用的方法,就是当页面有尾部,但是内容又不多的情况下,让中间的内容把尾部撑到底部. <script type="text/javascript"&g ...
- 快速上手微信小程序-快递100
2007 年 1 月 9 日,乔布斯在旧金山莫斯科尼会展中心发布了首款 iPhone,而在十年后的 1 月 9 日,微信小程序正式上线.张小龙以这样的形式,向乔布斯致敬. 小程序在哪里? 小程序功能模 ...
- python之路 - 基础2
1.导入模块 import 模块名 form 模块名 import 模块中的函数 可以将模块放入同级目录中,也可以将模块放入site-packages目录中 import sys print (sys ...
- 使用Netsil监控Kubernetes上的微服务
ubernetes是容器编排和调度领域的王者,它击败了竞争对手Docker Swarm和Apache Mesos,开启了闪耀的未来,微服务可以自修复,可以自动扩展,可以跨zone,region甚至跨云 ...
- Grant简介以及安装
Grant简介以及安装 1. 安装Grunt-cli需要使用npm,全局安装 命令:npm install –g grunt-cli(可能会涉及权限问题) 注意,安装grunt-cli并不等于安 ...
- Java文档注释
文档注释是用于生成API文档,API主要用于说明类.方法.成员变量 javadoc工具 处理文档源文件在类.接口.方法.成员变量.构造器和内部类之前的注释,忽略其他地方的文档注释.而且javadoc工 ...
- Linux下网卡BCM4313的安装
我遇到的问题:打开网络管理->wifi 显示固件缺失 通过: 1 lspci | grep Wireless 显示: 1 08:00.0 Network controller: Broadcom ...