Java三大特征:封装 继承 多态
内部类:成员内部类、静态内部类、方法内部类、匿名内部类。
内部类:定义在另外一个类里面的类,与之对应,包含内部类的外部类被称为外部类。
内部类的作用:(1)内部类提供了更好的封装,可以把内部类隐藏在外部类之内,部允许同一个包中其他类昂问该类。(2)内部类的方法可以直接访问外部类的所有数据,包括私有数据。(3)内部类所实现的功能使用外部类照样可以实现,只是有时使用内部类更方便。
成员内部类(普通内部类):内部类创建对象时,必须使用外部类对象来创建,而不能直接用new创建一个内部对象,即内部类 对象名=外部类对象. new 内部类();外部类不能直接调用内部类方法,必须通过内部类对象来访问其属性和方法。如果外部类和内部类具有相同的属性或方法,内部类默认访问自己的属性和方法。如果需要访问外部类的成员变量,可以用this关键字,即外部类.this.属性名/方法.
静态内部类:是static修饰的内部类。特点是:(1)静态内部类不能访问外部类的非静态成员,但是可以通过new外部类().成员来访问。(2)如果外部类静态成员与内部类成员名相同,可通过类名.静态成员来访问外部类静态成员;如果外部类的静态成员与内部类成员名称不同,则可以通过成员名直接访问外部类的静态成员。
(3)创建静态对象时,不需要外部对象可以直接创建,即内部类 对象名=new 内部类();
方法内部类:内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在方法内可以使用。由于方法内部类不能在外部类以外的地方使用,因此方法内部类不能使用访问控制符和static修饰。
继承
子类拥有父类的所有属性和方法,除了父类私有成员。
继承初始化顺序:(1)初始化父类再初始化子类。(2)先执行初始化对象中的属性,再执行构造方法中的初始化。
final关键字:final可以修饰类、方法、属性、变量。final修饰类的画,此类不能被继承;final修饰方法的话,此方法不能被重写;final修饰属性的话,则该属性不会隐式初始化,类的初始化必须有值,要么在声明时赋值,要么在构造方法中赋值;final修饰变量的话,变量变为常量,而且仅能赋值一次。
super关键字:在对象内部表示父类对象。
super应用:(1)如果子类的构造方法没有显式调用父类的构造方法,则系统默认调用父类无参构造方法。(2)如果显式调用父类的构造方法,必须放在第一行。(3)如果子类构造方法既没有显式调用父类构造方法,而且父类方法没有无参构造方法,则编译出错。
多态
父类引用指向本类对象(执行本类方法);父类引用指向子类对象(要么执行子类方法,要么执行继承的父类方法)。
abstract修饰符
作用:限制子类必须实现的方法,不关注如何实现。
使用规则:(1)abstract定义抽象类;(2)abstract修饰抽象方法,只有声明,不用实现(抽象方法没有执行体大括号,并且以分号结束);(3)包含抽象方法的类是抽象类;(4)抽象类中可以包含抽象方法,也可以没有抽象方法;(5)抽象类不能直接创建,可以定义引用变量。
接口
接口由全局变量和公共的抽象方法所组成,规定某些类的实现方法,用关键字interface定义接口,即[修饰符] interface 接口名 [extends 父接口1,父接口2...]{0——n个常量定义;
0——n个抽象方法定义;}
接口通常是用来被继承、被实现的,修饰符一般用public,不能用private和protected修饰接口。接口必须有abstract修饰,接口可以定义多个父接口,因为接口中的都是常量,所以系统默认用public static final修饰常量,即使常量前没有修饰符修饰,系统也会自动加上。因为接口中全是抽象方法,所以系统默认用public abstact [修饰符] 修饰方法,即使方法前没有修饰符,系统也会自动加上。
一个类可以实现一个或多个接口,用implements实现,如果要继承父类,继承父类必须在实现接口之前。接口的使用是通过接口的引用指向实现接口的对象。接口经常配合匿名内部类使用,如:interface i=new interface(){ public void method(){} };(必须有分号)
包名命名规范应该全是小写字母。
import中的*只能代表类,不能代表包。如果使用其他类,必须使用import导入。
Java.lang.Object是所有类的父类。
object是所有类的父类。以下是它的两个重要方法。
(1)toString()
(2)equals(),比较的是对象是否指向同一块内存地址。
类对象:描述的是类的代码信息,即类的属性。
类的对象:描述的是类的数据域,即类的属性值。
Java三大特征:封装 继承 多态的更多相关文章
- Java三大特性(封装,继承,多态)
Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...
- JAVA的三大特征 封装继承多态- 简单总结
简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...
- java面向对象(封装-继承-多态)
框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...
- Java三大特征之继承(二)
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- Java基础——面向对象(封装——继承——多态 )
对象 对象: 是类的实例(实现世界中 真 实存在的一切事物 可以称为对象) 类: 类是对象的抽象描述 步骤: 1.定义一个类 (用于 描述人:) ( * 人:有特征和行为) 2.根据类 创建对象 -- ...
- OOP三大核心封装继承多态
OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- C++三大特性 封装 继承 多态
C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...
- java类的封装 继承 多态
1.猜数字小游戏 package cn.jiemoxiaodi_02; import java.util.Scanner; /** * 猜数字小游戏 * * @author huli * */ pub ...
- 封装继承多态-java面向对象三大特征
第七章 封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...
随机推荐
- CVE-2019-0193 Apache solr velocity模块漏洞
Solr简单介绍 Solr是建立在Apache Lucene ™之上的一个流行.快速.开放源代码的企业搜索平台. Solr具有高度的可靠性,可伸缩性和容错能力,可提供分布式索引,复制和负载平衡查询,自 ...
- git基本设置——git工具篇
1.设置邮箱和用户名 /*解释: --global 选项代表对 Git 进行全局设置.*/ $ git config --global user.name "Your Name" ...
- HTML+CSS教程(六)浮动-float+定位-position+居中问题
一.浮动(float)1.文档流:是指盒子按照 html 标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置 ...
- webstorm tslint配置
webstorm设置 settings >> TypeScript >> TSLint, 勾选 Enable ,选取 tslint包路径...npm\node_modules\ ...
- Ubuntu下的eclipse配置MapReduce
下载配置文件: 链接:https://pan.baidu.com/s/13vatPHpDP5HaW0mKuHydUA提取码:pjxi 1)启动hadoop cd /usr/local/hadoop . ...
- c++四舍五入函数round()
其实c++自身是没有四舍五入函数round()的,若果你要用到的话,可以自己写一个round(),不过要用到floor()和ceil这两个函数如下: #include<iostream> ...
- 前端开发--ajax
使用ajax,他是有两个模块的,一个是客户端,一个是服务端. 客户端负责发送数据,发送数据的方式有两种,一种是GET,另一种是POST. 服务端是用来接收,处理数据和发送请求的数据. 要想使用ajax ...
- 2019-2020-1 20199329《Linux内核原理与分析》第一周作业
Linux学习随笔 Linux 是一个操作系统,我们的 Linux 主要是系统调用和内核那两层. UNIX前身是Multics,但 UNIX 的商业版本非常昂贵,于是Linus Torvalds(Li ...
- Linux open() 一个函数,两个函数原型
open在手册中有两个函数原型, 如下所示: int open(const char *pathname, int flags); int open(const char *pathname, int ...
- POJ1475 推箱子---模块化思想
自古逢秋悲寂寥,我言秋日胜春朝. 晴空一鹤排云上,便引诗情到碧霄. --刘禹锡 题目:推箱子 网址:http://poj.org/problem?id=1475 推箱子游戏相信大家都不陌生,在本题中, ...