8.1 类的定义

 

包括普通类和枚举类,枚举(略)

下面都是指普通类:

 

public只能用于外部类,成员类,不能用于局部类,匿名类

protected和private用于成员类时(待解)

static只能用于成员类,不能用于外部类,局部类,匿名类

 

abstract类可以有abstract方法

abstract类不能实例化

abstract类一定要保证子类能够实现其中的abstract方法

如果是为了不想被实例化,应该让构造成为private,通常含有static字段或方法

 

final类不能被继承,其中的方法无法被覆盖

final和abstract显然不能共存

 

strictfp类,表示其中的所有实型变量和表达式都是FP-strict

 

泛型类(略)

 

除了外部类和静态成员类,其他都叫内部类,包括成员内部类,局部内部类,匿名内部类

不能有static初始块,不能有成员接口

不能定义static成员,除非是final字段

但可以继承static成员

一个内部类的实例总是依赖于一个外部类实例

内部类外面定义的局部变量,形参,异常变量,必须定义为final

内部类外面定义的局部变量在内部类里面使用前必须初始化

 

静态成员类和静态局部类

可以有static初始块,可以定义static成员,可以有成员接口

成员接口总是static的 (内部接口的一种)

 

8.2 类的成员

 

构造方法,静态或非静态的初始化块,并非类的成员,所以不会被继承

 

8.3 类的字段

 

父类的private字段有可能被子类访问到,比如他们都在一个外部类里

但肯定不会继承给子类的

 

有可能从多个途径多次继承了同一个接口里定义的字段,没有关系,那只是常量,而且可以直接访问,或者用接口名访问

但两个父接口里的同名字段是不能被子类访问的,即使类型和值都相同也会编译报错

 

static字段就是类变量,非static就是实例变量

类变量初始化不能调用this和super,因为没有实例对象

 

未赋值的final static字段必须在static初始化块里初始化

未赋值的final 非static字段必须在构造方法结束前初始化

 

transient字段在持久化存储时不会被存储,比如序列化时

 

volatile字段在多线程中共享访问时总是读取最新值

volatile不能跟final共存

 

8.4 类的方法

abstract方法不能再声明为  private,  static,  final,  native,strictfp,  synchronized
native跟strictfp不能共存

abstract方法可以覆盖非abstract方法

无法用super调用abstract父类,因为父类无法实例化,但可以调用继承来的方法

 

final类的方法和声明为private的方法默认为final

 

native方法是说本方法不是平台无关的,里面有本地代码,直接加分号,没有方法体

 除了abstract和native,方法必须有方法体{....}

 声明了返回类型,不一定必须有return,可能通过异常等方式跳出方法

 

在覆盖或者实现方法的过程中无需考虑strictfp修饰符

 

8.8构造方法

 

构造不能是abstract, static, final, native, strictfp,synchronized

 

class Outer {
class Inner {}
}
class ChildOfInner extends Outer.Inner {
ChildOfInner() { (new Outer()).super(); }
}

  

 

J2SE7规范_2013.2_类的更多相关文章

  1. J2SE7规范_2013.2_类型_命名

    3.1 字面量:包括整型,实型,字符,字符串,布尔,null   整形: 除非后面有个l或L,一般总是int类型 除非是0x,0,0b开头,一般总是十进制 无论什么进制,中间都可以有_,无意义,只是看 ...

  2. JDK Tools - wsimport: 编译 WSDL 生成 JAX-WS 规范的 Java 类

    wsimport 命令是用来编译 wsdl 生成JAX-WS 规范的 Java 类的工具. 命令格式 wsimport [ options ] wsdl 命令参数 -s directory 指定源文件 ...

  3. Puppet主机、模块、类、资源、变量、参数、标签命名规范

    Puppet命名规范: 约定说明: 小写字母:"a-z" 大写字母:"A-Z" 数字: "0-9" 句号: "." 下划 ...

  4. 【转载】PHP PSR-1 基本代码规范(中文版)

    基本代码规范 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性. 关键词 "必须"("MUST")."一定不可 ...

  5. 项目编码规范(Ali)

    一.研发流程规范 二.SQL编码规范 数据库命名规范:数据库名一律小写,必须以字母开头.库名包含多个单词的,以下划线“_”分隔.如果采用分库方案,分库编号从“0”开始,用“0”左补齐为四位. 表名规范 ...

  6. PHP编码规范PSR-1

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  7. Batsing的网页编程规范(HTML/CSS/JS/PHP)

    特别注意!!!我这里的前端编程规范不苟同于Bootstrap的前端规范. 因为我和它的目的不同,Bootstrap规范是极简主义,甚至有些没有考虑到兼容性的问题. 我的规范是自己从编程实践中总结出来的 ...

  8. psr的规范

    基本代码规范 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性. 关键词 "必须"("MUST")."一定不可 ...

  9. Xcode6中如何使用自定义的类模板

    说到IOS类的模板,有些人感觉很陌生,但是只要有开发过IOS程序的人,其实都用过类的模板,只不过是用的系统自带的类的模板. 例如创建一个ClassTemplateVC继承于UIViewControll ...

随机推荐

  1. 机器学习 —— 概率图模型(CPD)

    CPD是conditional probability distribution的缩写,翻译成中文叫做 条件概率分布.在概率图中,条件概率分布是一个非常重要的概念.因为概率图研究的是随机变量之间的练习 ...

  2. PHP优化杂烩

    讲 PHP 优化的文章往往都是教大家如何编写高效的代码,本文打算从另一个角度来讨论问题,教大家如何配置高效的环境,如此同样能够达到优化的目的. pool 一个让人沮丧的消息是绝大多数 PHP 程序员都 ...

  3. 轻量级MVC标准

    看到标题,估计有人就开始想吐了,没关系,你可以先吐完再看,现在MVC框架多如牛毛,没必要再重复发明轮子了,要声明的是,这里不是想要发明轮子,也没那个闲工夫去发明轮子,而是看到这么多MVC框架模样都差不 ...

  4. VS2015中快捷注释代码块

    注释ctrl+k   ctrl+c 反注释ctrl+k ctrl+u 需要注意的是第二个ctrl不能省略的

  5. Android开发之MD5加密

    将字符串进行MD5加密,返回加密后的字符串 public static String encode(String password) { try { StringBuffer sb = new Str ...

  6. IP地址分类及私网IP

    5类IP地址: IP地址共有32位字节,其中A~C类IP地址由类标识号.网络地址和主机地址组成,A类标识最高位为0,网络地址为1字节,主机地址为3字节, B类标识最高位为10,网络地址为2字节,主机地 ...

  7. tranform-scale 缩小元素,移上去文字抖动

    元素缩小后,鼠标移上去之后文字会出现抖动, -webkit-transform:scale(0.5); 修复代码如下: *{ -webkit-backface-visibility: hidden; ...

  8. poj 2411 Mondriaan's Dream(状态压缩dP)

    题目:http://poj.org/problem?id=2411 Input The input contains several test cases. Each test case is mad ...

  9. UVa 10562 (特殊的输入处理方式) Undraw the Trees

    题意: 给出一个二维字符数组,它代表了一棵树.然后将这棵树转化为括号表示法(以递归的形式). 分析: 这道题最大的特色就是对数据的处理方式,里面用到了一个 fgets() 函数,这个函数的功能有点像c ...

  10. fancybox 在打开窗口前 先执行 js脚本,fancybox设置只能通过右上角关闭,fancybox遮罩层关闭

    在默认情况下,fancybox点击之后弹出窗口,右上角带有一个XX,但是点击窗口的其他遮罩层或者是其他地方,都是可以关闭fancybox的,有些时候,我们不希望这样关闭,而是只能点击右上角关闭,那么设 ...