复习java基础第一天

一:static

static:
静态的. 
 
1. 若需要一个类的多个对象共享一个变量,则该变量需要使用 static 修饰. 
 
2. 因为 static 修饰的变量为类的所有的实例所共享,所以 static 成员不属于某个类的实例, 而属于整个类.
   
 所以在访问权限允许的情况下,可以使用 "类名."
直接访问静态成员(成员包括属性和方法).
 
3. 注意: 在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员.
   
 这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象.
  4. 同 3
的道理: 静态方法不能以任何方式引用this和super关键字.
  5.
非静态方法中可以直接来访问类的静态成员.
 
6. main() 方法是静态的,因此JVM在执行main方法时不创建main方法所在的类的实例对象.
 
7. 静态初始化指对类的静态属性进行初始化.

7.1 不应该在构造器中对静态成员进行初始化: 因为静态成员不因类的实例而改变.

7.2

1   //非静态代码块: 先于构造器执行,每创建一个对象都会执行一次.
2 {
3 System.out.println("非静态代码块");
4 }

7.3

1   //静态代码块: 使用 static 修饰的代码块
2 //在类被加载时执行一次,且执行一次. 可以在静态代码块中对静态成员变量进行初始化.
3 //先于非静态代码块和构造器执行.
4 static{
5 System.out.println("静态代码块");
6 }

8. 所谓类的单态设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例.
  8.1 不能再类的外部通过 new 关键字的方式创建新的实例:
构造器私有化.
 
8.2 在类的内部创建实例.
 
8.3 为了让类的外部能够访问到类的内部创建的实例,该实例必须使用 static 修饰. 
 
8.4 不能允许在类的外部修改内部创建的实例的引用. SingleInstance.instance =
null; 
 
     需要把该属性用 private 修饰.
 
8.5 为了让外部进行读,添加对应的 get 方法.  
  
 
二:final

  1.
在Java中声明类、属性和方法时,可使用关键字final来修饰。
 
2. final标记的类不能被继承.提高安全性,提高程序的可读性。
  3.
final标记的成员变量必须在声明的同时或在每个构造方法中显式赋值,否则编译出错。
 
4. final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。
  5.
final标记的方法不能被子类重写,增加安全性。

三:

 接口:
抽象方法和常量的集合. 实际上接口更是一种规范!
 
1. 用 interface 来定义。 
 
2. 接口中的所有成员变量都默认是由 public static final
修饰的.在声明变量时必须直接赋值. 
 
   常量标识符的书写要求: 字母都大写,多个单词使用 _ 连接.
 
3. 接口中的所有方法都默认是由public
abstract修饰的.接口没有构造方法.
 
4. 实现接口使用 implements 关键字.若一个类既实现接口,有继承了父类, 需要把 extends 关键字放在前面,
   
 即先继承父类,
后实现多个接口.一个类可以实现多个无关的接口;若实现多个接口,使用,分割. 
 
5. 接口也可以继承另一个接口,使用extends关键字.
  
关于接口的提示:
  1. 实现接口的类中必须提供接口中所有方法的具体实现内容.若该类为抽象类,另当别论. 
  2.
多个无关的类可以实现同一个接口.

3. 与继承关系类似,接口与实现类之间存在多态性
.

接口练习例子:


 1 public class TestInterface {
2
3 public static void main(String[] args) {
4
5 System.out.println(Dao.DAO_NAME);
6
7 Dao dao = new DaoImpl();
8
9 ComparableCircle cc1 = new ComparableCircle(2);
10 ComparableCircle cc2 = new ComparableCircle(7);
11
12 System.out.println(cc1.compareTo(cc2));
13 }
14 }
15
16 interface Dao{
17
18 String DAO_NAME = "DAONAME";
19
20 void save(Object obj);
21
22 Object get();
23 }
24
25 interface Test{}
26
27 interface Test2 extends Test{}
28
29 class BaseDao{}
30
31 class DaoImpl extends BaseDao implements Dao, Test{
32
33 @Override
34 public Object get() {
35 // TODO Auto-generated method stub
36 return null;
37 }
38
39 @Override
40 public void save(Object obj) {
41 // TODO Auto-generated method stub
42 }
43 }
44
45 class DaoImpl2 implements Dao{
46
47 @Override
48 public void save(Object obj) {
49 // TODO Auto-generated method stub
50 }
51
52 @Override
53 public Object get() {
54 // TODO Auto-generated method stub
55 return null;
56 }
57 }

复习java基础第一天,码迷,mamicode.com

时间: 2024-10-12 14:08:10

复习java基础第一天的相关文章

复习java基础第三天(集合)

一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Collection 接口是 List.Set 和 Queue 接口的父接口, 该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合: import java.util.ArrayList; import java.util.Collection; import j

复习java基础第二天(异常处理)

一.常见的异常类型: public class TestException { public static void main(String[] args) { int i = 10; //数学异常: java.lang.ArithmeticException int j = i / 0; System.out.println(j); int [] scores = new int[]{1, 2, 4, 5}; //数组下标越界异常: java.lang.ArrayIndexOutOfBound

复习java基础第七天(反射)

一:目标 Ø理解 Class 类 Ø理解 Java 的类加载机制 Ø学会使用 ClassLoader 进行类加载 Ø理解反射的机制 Ø掌握 Constructor.Method.Field 类的用法 Ø理解并掌握动态代理 1.Class类 –对象照镜子后可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现了哪些接口. 对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象. 一个 Class 对象包含了特定某个类的有关信息. –  Class 对象只能由系统建立对象.

复习java基础第六天(IO)

一:File 类 • 输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中. • 输出:将程序(内存)数据输出到磁盘.光盘等存储设备中 • Java 的 IO 流主要包括输入.输出两种 IO 流,每种输入.输出流有可分为字节流和字符流两大类: – 字节流以字节为单位来处理输入.输出操作 – 字符流以字符为单位来处理输入.输出操作 注意:输入.输出是以程序为参照. • File 类代表与平台无关的文件和目录. • File  能新建.删除.重命名文件和目录,但 File 不能访问文件内

复习java基础第四天(集合)

List 代表一个元素有序.且可重复的集合,集合中的每个元素都有其对应的顺序索引 List 允许使用重复元素,可以通过索引来访问指定位置的集合元素. List 默认按元素的添加顺序设置元素的索引. List 集合里添加了一些根据索引来操作集合元素的方法: 另外: List 额外提供了一个 listIterator() 方法,该方法返回一个 ListIterator 对象, ListIterator 接口继承了 Iterator 接口,提供了专门操作 List 的方法: boolean hasPr

Java基础---第一天

一.第一天学习进程 Java概述[电脑—Java介绍]--------Java经典实例[path环境配置.HelloWorld]-------------Java基础[关键字.标识符.注释.HelloWorld注释完整] 二.Java概述 键盘快捷键: Ctrl+A:全选               Ctrl+C:复制               Ctrl+V:黏贴           Ctrl+X:剪切 Ctrl+Z:撤销            Ctrl+S:保存            Win

JAVA面试精选【Java基础第一部分】

这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能.不管你是面试各个级别的JAVA工程师.架构师.还是项目经理,这个系列文章都是你最宝贵的资源,里面包括整个JAVA体系的知识,总会有

java基础第一章

一.什么是java,它包含哪些技术 1.         java是一种面向对象的高级编程语言 2.         java包括 a)      javase(java基础) b)      javaee(java企业级应用) 二.用记事本编写java程序的3个步骤 1.         创建扩展名为.java的java源文件 2.         编译java源文件,产生扩展名为.class的字节码文件在dos命令窗口中,输入 [javac 文件名.java] 再回车 3.        

JAVA基础第一章-初识java

业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 从今天开始,我将会持续更新java基础知识,欢迎关注. java的诞生 说起java的由来也许也是一个比较有意思的事情.20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒.面包烤箱.移动电话等)的智能化程度.sun公司为了抢占市场,就想在这些产品中嵌入一些程序