Java的三大特性
一、封装性
含义:对外不可见,保护属性和方法不被外部多看见
实现:通过关键字private声明,用get、set方法为外部访问。
引用的传递:
static关键字:修饰属性(全局属性);修饰方法(直接通过类名调用)
static方法中只能访问static声明的属性和方法。
可以实例化之前就用static: Person.setName("name");//静态方法 Person p = new Person();
this关键字:表示类中的属性和方法;调用本类中的构造方法;表示当前对象。
public People(){ this();//调用默认无参的构造方法必须首行 this.name = name; this.age = age;}
内部类:对象只用一次 垃圾自动回收 new Person().tell();
二、继承性
含义:扩展类的功能
实现:通过关键字extends。限制:只允许单继承。
继承过程构造方法调用顺序:实例化子类对象-》先调用父类构造方法-》再调用子类构造方法
方法的重写:子类重写父类方法
子类.方法()只会执行子类的内容
子类.方法(){super.方法()}强制执行走父类的方法+子类的其他
被子类重写的方法不能拥有比父类更加严格的访问权限
访问权限:private<default<public(私有、同一个包下、整个工程下)
抽象类:
抽象类:包含一个抽象方法的类就是抽象类
抽象方法:声明并未被实现的方法,使用关键字abstract声明
abstract class className{属性;方法;抽象方法}
抽象类不能被实例化,要通过其子类进行实例化。(必须实现所有的抽象方法)
接口:
接口:是一种特殊的类,里面全部由全局变量和公共的抽象方法所组成。
interface interfaceName{全局常量(public static final name);抽象方法(public abstract void name())}
接口的实现必须是通过子类,使用implements,而且接口是可以多实现的。(必须实现所有的抽象方法)
一个类可以同时继承抽象类和接口。
一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口。(interface Intent3 extends Intent1,Intent2{})
final关键字:
被称为完结器,表示最终的意思。能声明类、方法、属性。
使用final声明的类不能被继承;使用final声明的方法不能被重写;使用final声明的常量不能被修改(name大写)。
三、多态性
含义:方法的重载,对象的多态性。
向上转型 程序自动完成 父类 父类对象 = 子类示例 (父类.方法()调用子类复写的方法)
向下转型 强制类型转换 子类 子类对象 = (子类)父类示例 (先向上再向下)
class A {tell1()}
class B extends A {tell2()}
class C extends A {tell3()}
say(new B()); say(new C());
say(A a){a.tell1()}
instanceof关键字:判断一个对象到底是不是一个类的实例。
A a = new B(); a instanceof A true; a instanceof B true;
方法的重载:
含义:方法名相同。但是参数类型和个数不同。来完成不同的功能。
递归调用:自己调自己。得有出口。。。
Java的三大特性的更多相关文章
- Java 浅析三大特性之一继承
上文Java 浅析三大特性之一封装我们说到Java是一个注重编写类,注重于代码和功能复用的语言.Java实现代码复用的方式有很多,这里介绍一个重要的复用方式--继承. 在介绍继承之前,我们要明确一点, ...
- java提高篇(四)-----理解java的三大特性之多态
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- java提高篇(二)-----理解java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- java提高篇(三)-----理解java的三大特性之多态
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- java提高篇(二)-----理解java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- (转)java提高篇(二)-----理解java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- java基础(二)-----java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- java基础(一)-----java的三大特性之封装
面向对象编程有三大特性:封装.继承.多态.本文将介绍java的三大特性之封装 封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成 ...
- java-----理解java的三大特性之多态
的java提高篇(四)-----理解的java的三大特性之多态 面向对象编程有三大特性:封装,继承,多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外 ...
- Java提高篇之理解java的三大特性——继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
随机推荐
- web框架开发-分页器(Paginator)
Django有自带的分页器,可以将数据分在不同的页面中,并提供一些属性和方法实现对分页数据的操作.分页功能的类位于django/core/paginator.py中. 常用方法 # 分页器 # pag ...
- 【题解】洛谷P3660 [USACO17FEB]Why Did the Cow Cross the Road III
题目地址 又是一道奶牛题 从左到右扫描,树状数组维护[左端点出现而右端点未出现]的数字的个数.记录每个数字第一次出现的位置. 若是第二次出现,那么删除第一次的影响. #include <cstd ...
- Linux内存管理 (19)总结内存管理数据结构和API
专题:Linux内存管理专题 关键词:mm.vaddr.VMA.page.pfn.pte.paddr.pg_data.zone.mem_map[]. 1. 内存管理数据结构的关系图 在大部分Linux ...
- c语言之数据类型
#include<stdio.h> int main(void) { float weight, value; printf("Are you worth your weight ...
- 在QT中使用C/C++, 在linux下生成 .so, 并调用 .so
时间不早了, 先下班了... 明天再写..
- php函数 array_diff
array_diff ( array $array1 , array $array2 [, array $... ] ) : array 对比 array1 和其他一个或者多个数组,返回在 array ...
- Linux(Ubuntu)使用日记------ssh远程登录腾讯云
不知道是我自己电脑的问题还是其他的问题.总之在我的折腾之下算是用ssh连接上了我的腾讯云. 具体步骤: 1.生成密钥 ssh-keygen -t rsa 执行命令会出现这样,执行后让你输入东西的全部回 ...
- Vivado2016旧工程IP移动到新工程
前言 在VIVADO中图形化界面生成IP,在旧工程中使用后,如果想在新的工程中使用这个IP但又不想再次生成一次,则就需要把就旧工程中的IP导入到新工程中. 流程 1.旧工程IP生成的目录如下,IP为C ...
- Java【第二篇】基本语法之--进制、运算符
进制 对于整数,有四种表示方式: 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头. 十进制:0-9 ,满 10 进 1. 八进制:0-7 ,满 8 进1. 以数字 0 开头表示. 十六进制 ...
- java java.net.URLConnection 实现http get,post
抽象类 URLConnection 是所有类的超类,它代表应用程序和 URL 之间的通信链接.此类的实例可用于读取和写入此 URL 引用的资源.通常,创建一个到 URL 的连接需要几个步骤: open ...