day13 类的补充
访问修饰符 同包 不同包
本类 子类 非子类 子类 非子类
private 是 否 否 否 否
默认 是 是 是 否 否
protected 是 是 是 是 否
public 是 是 是 是 是
总结:set/get方法封装体现:
1、可以只提供get或者set方法,把属性变为只读或者只写。
2、get方法可以提供权限的验证,set方法可以提供数据的有效性效验。
3、可以隐藏内部属性的存放形式。
static关键字:
1、凡是static修饰的,都与对象无关,都是类级别的。
2、凡是static修饰的,都会在加载期有特殊处理。
初始化块
实例初始化块{}
在new对象的时候,自动被执行,在第三步之前执行,即对属性进行自己构造操作的初始化之前。
静态初始化块 static{}
该代码块在加载类文件的时候就被执行,一个类只加载一次,所以静态初始化块也只执行一次。所以很多打开资源、开启链接的预加载动作可以写到静态初始化块中。
类的高级属性:
内部类:成员内部类(特例:静态内部类)、局部内部类(特例:匿名内部类)。
所有的内部类都是一个独立的类,都拥有各自的属性、行为、构造等等。
成员内部类:class文件:外部类类名$内部类类名.class
1、位置:直接写在外部类当中。位置与属性、方法、构造等平行。
2、可以有访问修饰符,代表该类能否被外部的类调用。
3、不管是什么访问修饰符,本类(外部类)都可以访问使用。
4、在外部使用成员内部类,首先产生外部类对象,然后用特殊语法对象.new的方式产生内部类对象。
5、在外部使用静态内部类,可以用外部类类名.的方式直接访问操作,无需产生外部类对象。
6、成员内部类调用外部类的属性和方法:Outclass.this.外部的属性和方法。
7、静态内部类调用外部类的属性和方法:Outclass.外部的静态属性和方法。
局部内部类:class文件:外部类类名$序号内部类类名.class
1、位置:直接写在外部类的方法当中,其位置和局部变量平行。
2、没有访问修饰符,只能在定义的外部类方法中使用。
3、使用的时候直接产生局部内部类。
4、局部内部类不能操作它所在方法的局部变量(非常特殊)。
4——1形参(final int e)改变形参的形式可以在局部内部类中访问。
4——2(int e){a=e;}a为成员变量,可以间接操作。
5、匿名内部类的class文件:外部类类名$序号.class
6、匿名内部类在产生对象的同时定义这个类,只能用一次。
7、匿名内部类不能操作它所在方法的局部变量。(非常特殊)
匿名内部类举例:
new Object(){
public void introduce(){
System.out.println("***");
}
}.introduce;
day13 类的补充的更多相关文章
- C++笔记006:关于类的补充
原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 关于类的补充: 类是一个数据类型(固定大小内存块的别名),定义一个类,是一个抽象的概念,不会给你分配内存,用数据类型定义变量的时候,才会分 ...
- python day 11: 类的补充,元类,魔法方法,异常处理
目录 python day 11 1. 类的补充 1.1 通过反射来查找类,创建对象,设置对象的属性与方法 1.2 类的魔法方法:getitem,setitem 1.3 元类__metaclass__ ...
- 03OC的类的补充
上一章我们介绍了类的定义,以及类的里面如何定义成员变量,如何定义方法等等. 一.self关键字 1.在C#中有关键字this表示当前对象,其实在OC中也有类似的关键字self,只是self关键字不仅表 ...
- Spring框架 全注解annotation不使用配置文件(SpringConfiguration.java类代替) 补充 xml配置文件没有提示解决
全注解不使用配置文件 首先还是倒包 在原有的jar包: 需Spring压缩包中的四个核心JAR包 beans .context.core 和expression 下载地址: https://pan.b ...
- CSS3结构类选择器补充
:empty 没有子元素(包括文本节点)的元素 :not 否定选择器 <!DOCTYPE html> <html lang="en" manifest=&quo ...
- idea 新建java类自动补充创建人,创建时间,版本等..
1.先进入 File 2.进入 Editor 找到 File and Code Templates 并点击 3.右侧点击 lncludes 4.第二项 File Header /** * @aut ...
- UML从需求到实现---类图(2)
上节写到了UML中的类图:UML从需求到实现---类图(1) 写完以后总觉得写的不够详细.里面很多细节没有说到.一篇文章就把强大的面向对象的类说完.当然是不可能的.这次我再补充一些关于UML中类图和类 ...
- C++类(Class)总结
---恢复内容开始--- 一.C++类的定义 C++中使用关键字 class 来定义类, 其基本形式如下:class 类名{ public: //行为或属性 protected: //行为或 ...
- JAVA不可变类与可变类、值传递与引用传递深入理解
一个由try...catch...finally引出的思考,在前面已经初步了解过不可变与可变.值传递与引用传递,在这里再次深入理解. 1.先看下面一个try..catch..finally的例子: P ...
随机推荐
- Linux 基础入门第一次实验笔记
第一节.实验介绍 本节主要介绍 Linux 的历史,Linux 与 Windows 的区别等入门知识.如果你已经有过充分的了解,可以跳过本节,直接进入下一个实验. 一.Linux 为何物 Linux ...
- java第二次试验报告
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:郭皓 学号:20135327 成绩: 指导 ...
- 私人助手(Alpha)版使用说明
私人助手使用说明 私人助手这款软件是通过添加事件提醒,提醒你在合适的时间做该做的事,可以选择有多种提醒模式. 目前实现了对事件的添加和提醒功能,软件现在的情况如下: 1.添加事件 2.删除事件 3.事 ...
- Chapter 6 面向对象基础
面向对象=对象+类+继承+通信,如果一个软件系统采用这些概念来建立模型并给予实现,那么它就是面向对象的.面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用涉及到从面向对象分析.面向对象设计. ...
- 《校友聊—方便使用之NABCD》
<校友聊—方便使用之NABCD> 方便使用特点的分析与总结: N:由于一些软件的人机交互性很差,人性化性能低,使用不方便,故,鉴于此需求:A:用户可根据系统界面的友好提示一步步进行:B:提 ...
- 【CSAPP笔记】5. 汇编语言——数据
本博客对于汇编的介绍基于32位机器的Intel x86系列处理器和IA32指令集,也涉及少部分x86-64.由于汇编知识相对复杂,这里只做简单介绍和记录,详细请参照书本! 数据格式 下面这张表格中体现 ...
- 推荐一个Markdown数学公式编辑器——Haroopad & Mathjax
要在Markdown里插入数学公式,如果没有好用的的引擎or编辑器,那么只能插入图片了,十分麻烦.这里推荐一个十分强大的数学公式引擎--Mathjax. 配置 有道云笔记目前不支持浏览MathJax公 ...
- vue router 几种方式对比 (转载)
<div id="app"> <h1>Hello App!</h1> <p> <!-- 使用 router-link 组件来导 ...
- File FileStream StreamReader StreamWriter C#
存在各种各样的IO设备,比如说文件File类(字符串文件和二进制文件),可以直接使用File类对文件进行读写操作. 这些各种IO的读取和写入是通过流的形式实现的,基类为Stream,针对各种不同的IO ...
- Dubbo学习(五) Dubbo 从下载到编译成功
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广 ...