第四章,java面向对象特性
- 4.1 特性
封装,继承,
多态(编译时:方法的重载,同一个类里面不同方法可以用同一个方法名只是传入参数不同,
运行时多态:基础类提供一个接口,在编译时只调用基础类的接口,在运行时才确定到底是哪一个子类提供的服务。
- 4.2 类的定义
类的基本结构:类声明,成员变量(分为类变量static,实例变量),构造方法,成员方法(临时变量),
成员方法里面,或者构造函数里面的临时变量名和成员变量同名,需要用this,来显露成员变量,否则在里面调用这个名字默认是临时变量。
参数传递方式:
- 基础类型,传值,会改变调用参数值,以及定义的传入参数值
- 引用类型,方法体改变引用地址,new 一个新类型,不会改变调用参数值,定义的传入参数值最终被释放
- 引用类型,改变引用地址存储值,会改变调用参数值。
可变参数:
(int... nums) ,传入的参数1,2,3,4 可以是不同个数
访问控制:访问控制只是针对类,不针对对象。
This 关键字是为了区分成员变量和局部变量的,
- 顶级类:当你在其它类的外面声明一个类时,Java就认为该类是一个顶级类。如果你在一个顶级类中声明一个类,并且在该嵌套类的声明前加上static的修饰符,你就得到了一个嵌套顶级类。以下的代码段声明了一个顶级类和一个嵌套顶级类:class TopLevelClass{static class NestedTopLevelClass{}}就象静态的字段和静态的方法一样(也可称为类字段和类方法),一个嵌套的顶级类也是与对象无关的。
警告:一个嵌套顶级类不能访问任何外部类的实例成员(即所有的非静态字段和非静态方法)。 使用嵌套顶级类,你不可以访问外部类的实例字段或者调用该类的实例方法。要访问实例成员,Java支持内部类。内部类和嵌套顶级类相似,不同的地方是你不会在内部内的声明前加上static关键字。我们以下就讨论一下内部类,先从实例内部类开始
顶级类修饰符缺省。
- 定义在某个类(或接口,下同)内部的类,称为嵌套类(nested class),相应的,其所在的类称之为该类的外围类(enclosing class)或包裹类。
嵌套类必须要用static修饰,public static class Static{}。不用static修饰的类是一个内部类。
非嵌套类称为顶级类(top-level class),一个 .java 文件中可以有若干个顶级类(含抽象类和接口),但只能有一个被 public 修饰的类,且该类必须和 .java 文件同名。
- 内部类
内部类、匿名内部类都可以访问外部类的对象的域,为什么会这样,实际上是因为内部类构造的时候,会把外部类的对象this隐式的作为一个参数传递给内部类的构造方法,这个工作是编译器做的,他会给你内部类所有的构造方法添加这个参数
第四章,java面向对象特性的更多相关文章
- 2017-2018-2 20165301 实验四《Java面向对象程序设计》实验报告
2017-2018-2 20165301 实验四<Java面向对象程序设计>实验报告 一.Android Stuidio的安装测试 实验要求: 参考<Java和Android开发学习 ...
- 20155201 实验四《Java面向对象程序设计》实验报告
20155201 实验四<Java面向对象程序设计>实验报告 一.实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局 ...
- 20155217 实验四《Java面向对象程序设计》实验报告
20155217 实验四<Java面向对象程序设计>实验报告 一.实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局 ...
- JAVA基础第二章-java三大特性:封装、继承、多态
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- JavaSE学习总结(四)——Java面向对象十分钟入门
面向对象编程(Object Oriented Programming,OOP)是一种计算机模拟人类的自然思维方式的编程架构技术,解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题.Ja ...
- 2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告
北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构 班级: 1623 姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5 ...
- Java面向对象特性总结
1.面对对象与面对过程的区别 什么是封装?我看到过这样一个例子: 我要用洗衣机洗衣服,只需要按一下开关和洗涤模式就可以了.有必要了解洗衣机内 部的结构吗?有必要碰电动机吗?有必要了解如何通电的吗? 如 ...
- Java面向对象特性--多态
Java是一种面向对象的编程语言,面向对象的三大特性就是继承,封装,多态.下面细细说一说多态. 多态的定义:一个事物的多种形态,指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而 ...
- 四、java面向对象编程_2
目录 六.对象的创建和使用 七.this关键字 八.static关键字 九.package和import语句 十.类的继承 十一.访问控制 十二.方法的重写 十三.super关键字 十四.继承中的构造 ...
随机推荐
- 阿里读写分离数据源SELECT LAST_INSERT_ID()获取不到id
异常现象 insert 通过 mybatis 以下语法给领域类 赋予的 id 值为0. 后续根据主键的update操作失效.且无异常抛出 <selectKey keyProperty=" ...
- Win7 IIS 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的
因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改.运行命令行 %windir%\system32\inetsrv\appcmd unlock conf ...
- python脚本netifaces模块的调用
# vim get_ip.py # -*- coding: utf- -*- #complete local network card IP #need install netifaces modem ...
- 在ALV界面添加下拉框
1.在alv界面表单属性中设置 if wa_fieldcat-fieldname = 'YC_MARK'. wa_fieldcat-edit = 'X'. ...
- docker-ce-17.09 仓库的创建与使用
docker仓库是集中存放镜像的地方,注册服务器是存放仓库的具体服务器,每个服务器上可以有多个仓库,每个仓库下面有多个镜像. 一.查找仓库中镜像 > docker search centos 二 ...
- Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not mat
Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b ...
- sql like 语句
a like '%b%'的意思是,在a中找类似b的字符,在检索以逗号分隔的字段中时,两次弄反了顺序,比如,在a字段中查找有没有类似‘2,3’的记录,应该这么写:','+'2,3' like '%,'+ ...
- 发现一个animate的小应用
<script src="jquery-1.11.1.js"></script> <script> //animate() : //第一个参数 ...
- 一个命令查看mysql的所有配置(原创)
在mysql的命令提示符下,执行下面一句话,查看mysql服务器的所有全局配置信息: mysql> show global variables; 得到: 上表的文本内容: "Varia ...
- MySQL 5.6.4 中TIMESTAMP with implicit DEFAULT value is deprecated 错误
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. 在免安装版mysql安装过程中出现:[Warning] TIMESTA ...