1. static

1)静态变量:Java虚拟机为静态变量开辟单独的存储空间,所以所有的对象内部的静态变量在内存中都指向同一个地址,那么不管哪个对象改变这个成员变量,所有对象中该成员变量的值都发生变化。调用的方法一般为

类名.成员变量(常量)

2)静态方法:静态方法内部只能使用静态的成员变量,调用的方法:

类名.方法名(参数)

3)静态代码块:静态代码块在该类第一次被使用时执行一次,以后再也不执行。例如:

public class StaticBlock{
static{
System.out.println("静态代码块!");
}
}

2.final

1)final数据:final修饰的数据时常量,只能赋值一次,通常声明为static,例如:

public final static int MALE = 0;

2)final方法:final修饰的方法不能被覆盖。

3)final类:不能被继承。

3.this

1)引用成员变量

public class ReferenceVarible{
private int a; public void setA(int a){
this.a = a;
}
}

2)引用构造方法:在类中只写一个构造方法,然后其他的构造函数用this引用这个构造方法

public class ReferenceVarible{
private int a; public ReferenceVarible(int a){
this.a = a;
} public ReferenceVarible(){
this(0);
}
}

在使用时this只能出现在构造方法内部的第一行可执行代码。

4.super

1)引用父类构造方法

public subClass(int a){
super(a);
}

以上代码调用父类有一个参数的构造函数。

2)引用父类成员方法:如果子类覆盖了父类的方法,还是想要调用父类的方法,可以用super修饰,例如:

super.test();

5.抽象类

public abstract class A{
public A(){}
}

抽象类不能使用自身的构造函数创建对象,但抽象类可以声明对象,默认都是null,无法调用抽象类中的非静态属性和非静态方法。

6.抽象方法

public abstract void test();

抽象方法没有方法体,所在的类必须为抽象类,强制子类覆盖抽象方法(类似制定了某种房屋的框架,强制遵守这个框架并实现细节)。

7.接口——常量数据+抽象方法

接口是一个规范,比如每家都有红烧肉,但是每家的红烧肉的味道都不一样,红烧肉就是接口,每家的红烧肉就是对接口的实现。

接口中声明的方法在实现的时候是必须被调用的,比如虽然每家的红烧肉味道不一样,但是都要有肉,而且是红烧的,然后就不管怎么做了,哪怕你做的是甜的,我也叫他红烧肉

接口的定义

访问控制符 interface 接口名 [extends 父接口名1,父接口名2......]{
常量声明
方法声明
}
public interface USB{
public static final int V = 5; public abstract byte[] readData();
public abstract void writeData(byte[] data);
}

接口的实现

访问控制符 [修饰符] class 类名 [extends 父类名] implements 父接口名1,父接口名2......
public class Computer implements USB{
int memorySize; public byte[] readData{
//读数据逻辑
} public void writeData{
//写数据逻辑
}
}

8.包

1)打包:将声明的类放入包中,即为类指定包名。

package 包名1[.包名2[.包名3......]];

package.game.bubble.ui就对应路径\game\bubble\ui

打包的语句必须是程序代码中第一行可执行代码

打包的语句最多只有一句。

2)JDK编译和运行打包

javac -d 类文件路径 源代码名称
//文件名:PackageClass.java
package chapter8;
public class PackageClass{
  //类内部的代码
} javac -d d:\ PackageClass.java

上述命令将PackageClass类编译成class,并将生成的class文件D盘根目录下。运行这个类:

java 包名.类名
java chapter8.PackageClass

3)引入包

import 包名1.[.包名2[.包名3......]].类名|*;

import只引入当前包下面的类,而不引入该包下面的子包里面的类。

《Java编程那点事儿》读书笔记(三)——static,this,抽象类,接口和包的更多相关文章

  1. 《实战Java高并发程序设计》读书笔记三

    第三章 JDK并发包 1.同步控制 重入锁:重入锁使用java.util.concurrent.locks.ReentrantLock类来实现,这种锁可以反复使用所以叫重入锁. 重入锁和synchro ...

  2. 《Effective Java》读书笔记三(类和接口)

    No13 使类和成员的可访问性最小化 要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.模块之间只通过它们的API进行通信,一个 ...

  3. 《Java并发编程的艺术》读书笔记:二、Java并发机制的底层实现原理

    二.Java并发机制底层实现原理 这里是我的<Java并发编程的艺术>读书笔记的第二篇,对前文有兴趣的朋友可以去这里看第一篇:一.并发编程的目的与挑战 有兴趣讨论的朋友可以给我留言! 1. ...

  4. 《深入了解java虚拟机》高效并发读书笔记——Java内存模型,线程,线程安全 与锁优化

    <深入了解java虚拟机>高效并发读书笔记--Java内存模型,线程,线程安全 与锁优化 本文主要参考<深入了解java虚拟机>高效并发章节 关于锁升级,偏向锁,轻量级锁参考& ...

  5. <<Java RESTful Web Service实战>> 读书笔记

    <<Java RESTful Web Service实战>> 读书笔记 第一章   JAX-RS2.0入门 REST (Representational State ransf ...

  6. 【转载】MDX Step by Step 读书笔记(三) - Understanding Tuples (理解元组)

    1. 在 Analysis Service 分析服务中,Cube (多维数据集) 是以一个多维数据空间来呈现的.在Cube 中,每一个纬度的属性层次结构都形成了一个轴.沿着这个轴,在属性层次结构上的每 ...

  7. 《Java并发编程的艺术》读书笔记:一、并发编程的目的与挑战

    发现自己有很多读书笔记了,但是一直都是自己闷头背,没有输出,突然想起还有博客圆这么个好平台给我留着位置,可不能荒废了. 此文读的书是<Jvava并发编程的艺术>,方腾飞等著,非常经典的一本 ...

  8. 《深入理解java虚拟机》读书笔记三——第四章

    第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local ...

  9. 《深入理解Java虚拟机》读书笔记三

    第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local ...

  10. Struts2技术内幕 读书笔记三 表示层的困惑

    表示层能有什么疑惑?很简单,我们暂时忘记所有的框架,就写一个注册的servlet来看看. index.jsp <form id="form1" name="form ...

随机推荐

  1. android 开发 drawerlayout出现退不回去的情况

    问题原因: id_framelayout2 写在 id_linearlayout2 的后面了: 注意记得写: android:layout_gravity="start" 正确: ...

  2. 2. ProGit-Git基础

    (1) 取得项目的Git仓库 从工作目录中初始化新仓库 git init 从现有仓库克隆 git clone ssh协议 http协议 (2) 检查当前文件状态     git status (3) ...

  3. Cannot install ubuntu or other linux flavours on citrix Xen server

    Citrix Xen sucks! When u try to install linux stuff on its Xen servers, u will get an error complain ...

  4. gvim编辑文件到github乱码

    with below _vimrc settings, code uploaded to GitHub will display with proper encoding set encoding=u ...

  5. SPFA 原理剖析代码实现分析比较

    算法简介 SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算. 算法流程 算法大致流程是用一个队列来进行维护. ...

  6. 【BZOJ】【1503】 【NOI2004】郁闷的出纳员

    Splay Splay的模板题吧……妥妥的序列操作= =(好像有段时间没写过这种纯数据结构题了……) /************************************************ ...

  7. Hdu 1506 Largest Rectangle in a Histogram 分类: Brush Mode 2014-10-28 19:16 93人阅读 评论(0) 收藏

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  8. ios读取通讯录信息

    ios读取通讯录信息 (2012-05-22 14:07:11) 标签: ios读取通讯录 it   iphone如许app读取通讯录信息,读取通讯录信息时需要加载AddressBookUI 和Add ...

  9. php随机数怎么获取?一个简单的函数就能生成

    小美女建了一个站,有些页面相似度比较高,想添加一些字段来实现差异化,比如用php随机数生成从10到100之间随机一个数字.其实会php的朋友几十个字符就能实现了,如下代码所示,简单吧?10代表最小值, ...

  10. 用dedecms自定义表单创建简易自助预约系统

    建站往往需要根据客户的需求来增加相应的功能,比如预约.平时用比较多的是织梦系统,那么如何用dedecms自定义表单创建简易自助预约系统呢? 进入dedecms后台,左侧菜单中依次点击“核心” - 频道 ...