内部类:成员内部类、静态内部类、方法内部类、匿名内部类。

内部类:定义在另外一个类里面的类,与之对应,包含内部类的外部类被称为外部类。

内部类的作用:(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三大特征:封装 继承 多态的更多相关文章

  1. Java三大特性(封装,继承,多态)

    Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...

  2. JAVA的三大特征 封装继承多态- 简单总结

    简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...

  3. java面向对象(封装-继承-多态)

    框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...

  4. Java三大特征之继承(二)

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  5. Java基础——面向对象(封装——继承——多态 )

    对象 对象: 是类的实例(实现世界中 真 实存在的一切事物 可以称为对象) 类: 类是对象的抽象描述 步骤: 1.定义一个类 (用于 描述人:) ( * 人:有特征和行为) 2.根据类 创建对象 -- ...

  6. OOP三大核心封装继承多态

    OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...

  7. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  8. C++三大特性 封装 继承 多态

    C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...

  9. java类的封装 继承 多态

    1.猜数字小游戏 package cn.jiemoxiaodi_02; import java.util.Scanner; /** * 猜数字小游戏 * * @author huli * */ pub ...

  10. 封装继承多态-java面向对象三大特征

    第七章  封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...

随机推荐

  1. 猜数字和飞机大战(Python零基础入门)

    前言 最近有很多零基础初学者问我,有没有适合零基础学习案例,毕竟零基础入门的知识点是非常的枯燥乏味的,如果没有实现效果展示出来,感觉学习起来特别的累,今天就给大家介绍两个零基础入门的基础案例:猜数字游 ...

  2. 腾讯云集群服务部署mysql并挂载到服务器

    一.背景 由于现在大部分的应用都是运行在云服务器上的,而现在大多数文章都是主要写如何在服务器上使用docker去运行mysql,比较少有介绍云服务器上的.再加上现在k8s比较火爆,而云厂商大多数都提供 ...

  3. 重启mysql服务

    重启mysql 启动mysql: 方式一:sudo /etc/init.d/mysql start 方式二:sudo service mysql start 停止mysql: 方式一:sudo /et ...

  4. 磁盘性能测试工具之fio

    fio是测试磁盘性能的一个非常好的工具,用来对硬件进行压力测试和验证. 注意事项 CentOS 6.5等较老版本的操作系统用fdisk创建分区时,默认为非4KB对齐选择初始磁柱编号,对性能有较大的影响 ...

  5. Python常用库-Psutil

    背景 介绍一个处理进程的实用工具,这个是一个第三方库.应用主要有类似ps.cd.top,还有查看硬盘.内存使用情况等. 推荐的理由主要有 2 个,第一个是跨平台的,不管是OSX.Centos.Wind ...

  6. 一、搭建SpringBoot2.0.0M4基础Web项目

    本次开发环境为: 系统:Linux Mint 18 JDK:1.8 开发工具:IntelliJ IDEA 2017.2.4 1.启动IDEA工具,开始创建一个基础项目.点击Create New Pro ...

  7. js html生成图片

    我自己分装好的方法,外链自己去下: /** * !!!使用前请导入jq文件!!! 海报生成, 二维码链接生成 */ document.write('<script src="/Publ ...

  8. php静态变量的销毁

    什么都不说,先上代码: public function _childrenids($data,$cate_id,$clear=false) { static $arr = array(); if ($ ...

  9. 2019-2020-1 20199325《Linux内核原理与分析》第二周作业

    冯诺依曼计算机硬件框图: 下面是一个简单的程序example.c. intadd_a_and_b(int a,int b){returna+b;}intmain(){returnadd_a_and_b ...

  10. 查看 Nginx 的日志目录

    即便是 docker 容器,对应的目录也是一样的 > /var/log/nginx/xxx.log