Java基础0308
笔记
类与对象
类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。类的定义如下:
- 类是相同或相似对象的一种抽象,是对象的一个模板,它描述一类对象的行为和状态。
- 类是具有相同属性和方法的对象的集合。
类是对象的抽象,对象是类的具体
一个类可以包含以下类型变量:
- 局部变量:在方法、构造方法或语句块中定义的变量叫局部变量,方法结束后变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量。
- 类变量:也叫静态变量,声明在类中,方法体之外,static类型。
PS
- 局部变量的作用域仅限于定义他的方法内。而成员变量的作用域在在整个类内部都是可见的。
- 同时在相同的方法中,不能有同名的局部变量;在不同的方法中,可以有同名的局部变量。
- 成员变量和局部变量同名是,局部变量具有更高的优先级。
构造方法
- 构造方法的名称和类名相同,且没有返回值。
- 如果在定义类的时候没有写构造方法,系统会默认生成一个无参构造方法,这个构造方法什么也不会做。
- 当有指定的构造方法是,系统就不会再添加无参构造方法了。
- 构造方法的重载:方法名相同,但参数不同的多个方法。
static
静态成员或方法都可以直接调用
final
- final修饰类,则该类不允许被继承,为最终类
- final 修饰方法,则该方法不允许呗覆盖(重写)
- final 修饰属性,则该类的属性不会被进行隐式的初始化或在构造方法中赋值(选其一)
- final 修饰变量,则该变量的值只能赋一次值,即常量。
封装
封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。
继承
继承可以看成是类与类之间的衍生关系。
extends(继承除开private方法和属性)
- 子类拥有父类除了private以外的所有属性和方法
- 子类可以拥有自己的属性和方法
- 子类可以重写实现父类的方法
- Java中的继承是单继承,一个类只有一个父类
super
- 访问父类的属性 super.属性名
- 访问父类方法
- 子类构造方法需要调用父类的构造方法时,在子类的构造方法体里最前面的位置:super()
方法重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。方法重载一般用于创建一组任务相似但是参数不同的方法。
规则:
- 方法中的参数列表必须不同。
- 访问权限,返回值类型和抛出异常都不同不能实现重载
- 重载方法中允许抛出不同的异常
- 可以有不同的返回值类型,但是参数列表必须不同
- 可以有不同的访问修饰符
方法重写
子类可以继承父类的方法,但如果子类对父类的方法不满意,想在里面加入适合自己的一些操作时,就需要将方法进行重写。
ps:在方法重写时要注意,重写的方法一定要与原父类的方法语法保持一致,比如返回值类型,参数类型以及个数,和方法名都必须一致。
多态
多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
例子:start1.test2
向上转型
子类继承于父类,子类可以向上转型为父类
父类 b=new 子类();
b是可以指向子类对象的
向上转型,在运行时,会遗忘子类对象中与父类对象中不同的方法,也会覆盖于父类中相同的方法——重写。
多态的实现条件
Java实现多态有三个必要条件:继承、重写和向上转型
实现方法
Java中多态的实现方法:继承父类进行方法重写,抽象类和抽象方法,接口实现。
抽象类
在定义类是,前面加上abstract关键字修饰的类叫抽象类。
接口
- 接口不能用于实例化对象
- 接口中方法只能是抽象方法、default方法、静态方法
- 接口成员是static final类型
- 接口支持多继承
多继承实现方法:
修饰符 interface A extends 接口1,接口2{
}
修饰符 class A implements 接口1,接口2{
}
内部类
将一个类的定义放在另一个类的定义内部,这就是内部类。而包含内部类的类被称为外部类。
内部类的主要作用如下:
- 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许用一个包中的其他类访问该类
- 内部类的方法可以直接访问外部类的所有数据,包括私有的数据
- 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便
- 内部类允许继承多个非接口类型
简而言之就是类中类
成员内部类的使用方法:
- 定义成员内部类后,必须使用外部类对象来创建内部类对象,即 内部类 对象名 =外部类对象.new 内部类();
- 如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用this关键字
ps:成员内部类不能含有static的变量和方法,因为成员内部类需要先创建了外部类,才能创建他自己的。
静态内部类
静态内部类通常被称为嵌套类。
- 静态内部类不能直接访问外部类的非静态成员,但可以通过
new 外部类().成员
的方式访问。 - 如果外部类的静态成员与内部类的成员名称相同,可通过
类名.静态成员
访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可以通过成员名
直接调用外部类的静态成员。 - 创建静态内部类的对象时,不需要外部类的对象,可以直接创建
内部类 对象名=new 内部类();
局部内部类
局部内部类,是指内部类定义在方法和作用域中。
匿名内部类
匿名内部类,顾名思义,就是没有名字的内部类。正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写。但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口。
package
略
Java基础0308相关推荐
- Java基础入门语法和安装
1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Un ...
- Java笔记整理-02.Java基础语法
1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...
- java基础(十三)-----详解内部类——Java高级开发必须懂的
java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...
- Java基础概念性的知识总结
属于个人的所学的知识总结,不是全面的 1.JDK.JRE和JVM三者的区别 01.JDK:(Java Development ToolKit)Java开发工具包,是整个Java的核心.包括了Java的 ...
- 我的面试标准:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架!...
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer www.cnblogs.com/J ...
- 叮!您收到一份超值Java基础入门资料!
摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...
- java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理
原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...
- Java基础-Date类常用方法介绍
Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...
- [Spring 深度解析]第1章 Java基础
第1章 ◄Java基础► 在学习Spring之前我们需要对Java基础语法有一定的了解,Java中最重要的两个知识点是注解和反射.注解和反射在Spring框架中应用的最广泛.掌握注解和反射,有助于后面 ...
- 清华学长免费分享Java基础核心知识大总结(1)
自学Java,如果觉得看<Java编程思想>或者<Core Java>等之类的"圣经"觉得内容太多,一下子吃不透的话,不妨看看这本<Java基础核心总 ...
最新文章
- AppleWatch开发教程之调试程序使用帮助文档
- python 第三方库 工具
- There is no tracking information for the current branch
- VS 2005 WEB PROJECT包括Crystal Report水晶报表的发布
- leetcode——344. 反转字符串
- Oracle EBS数据定义移植工具:FNDLOAD
- char*转wstring
- MonkeyRunner之小白如何使用MonkeyRecorder录制回放脚本
- 数据标注——VoTT的学习笔记
- quartus仿真系列3:74283的4位并行加法器
- oracle esb 灾备,两地三中心双活系统灾备切换场景和数据补录问题?
- 数组与List的相互转换
- UDK+VS2008搭建空工程
- PHP 谷歌翻译类API 接口
- 2021观澜二中高考成绩查询,深圳中学排名
- Layman数字土地指南
- 排序算法为什么要求稳定性
- 使用PN532向小米手环写入加密卡(复制门禁卡)
- HTML - label标签
- USACO-The Robot Plow G