一:static

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

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

7.2

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

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. 与继承关系类似,接口与实现类之间存在多态性 .

接口练习例子:

 public class TestInterface {

     public static void main(String[] args) {

        System.out.println(Dao.DAO_NAME);

         Dao dao = new DaoImpl();

         ComparableCircle cc1 = new ComparableCircle(2);
ComparableCircle cc2 = new ComparableCircle(7); System.out.println(cc1.compareTo(cc2));
}
} interface Dao{ String DAO_NAME = "DAONAME"; void save(Object obj); Object get();
} interface Test{} interface Test2 extends Test{} class BaseDao{} class DaoImpl extends BaseDao implements Dao, Test{ @Override
public Object get() {
// TODO Auto-generated method stub
return null;
} @Override
public void save(Object obj) {
// TODO Auto-generated method stub
}
} class DaoImpl2 implements Dao{ @Override
public void save(Object obj) {
// TODO Auto-generated method stub
} @Override
public Object get() {
// TODO Auto-generated method stub
return null;
}
}

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

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

    这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...

  2. JAVA基础第一章-初识java

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 从今天开始,我将会持续更新java基础知识,欢迎关注. java的诞生 ...

  3. java基础第一章

    有一定的基础,但是还是要重新开始,2020.10.6 1.手写Hello World public class HelloWorld{ public static void main(String[] ...

  4. Java基础の第一弹

    一.虚拟机的工作机制 (1) :通过 ClassLoader 寻找和装载 class 文件 (2) :解释字节码成为指令并执行,提供 class 文件的运行环境 (3) :进行运行期间垃圾回收 (4) ...

  5. JAVA基础第一组(前5道题)

    1.[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?        1.程序分析: 兔 ...

  6. Java基础第一节.Java简介

    第一节 Java简介 Java是一个由Sun公司开发而成的新一代的编程语言. Java语言是对软件开发有深远影响.应用前景广泛.具有丰富的类库.继承了C++的传统(摈弃了某些不足)广泛使用的网络编程语 ...

  7. 复习java基础第三天(集合:Collection、Set、HashSet、LinkedHashSet、TreeSet)

    一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Co ...

  8. Java基础第一天--继承、修饰符

    继承 继承的概述: 继承是面向对象三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法. //创建父类 public class Fu{ public void sh ...

  9. [Java复习] Java基础 Basic

    Q1面向对象 类.对象特征? 类:对事物逻辑算法或概念的抽象,描述一类对象的行为和状态. OOP三大特征,封装,继承,多态 封装:隐藏属性实现细节,只公开接口.将抽象的数据和行为结合,形成类.目的是简 ...

随机推荐

  1. Laradock 快速搭建PHP开发环境

    可能你并不清楚 Docker 是什么,更不了解 Laradock是什么,送上语句自己特别喜欢的一句话 Use Docker First And Learn About It Later 大概意思就是 ...

  2. 【Codeforces Global Round 1 C】Meaningless Operations

    [链接] 我是链接,点我呀:) [题意] 给你一个a 让你从1..a-1的范围中选择一个b 使得gcd(a^b,a&b)的值最大 [题解] 显然如果a的二进制中有0的话. 那么我们就让选择的b ...

  3. 洛谷 P1843 奶牛晒衣服

    题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在自然条件下用 ...

  4. 洛谷 P4198 BZOJ 2957 楼房重建

    题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些事件发生在一个 ...

  5. noip模拟赛 三部曲

    分析:子树上操作,要用到线段树+dfs序,关键就是子树内k还要增加,这个就不是很好办.可以求出在根节点+0后每个点会加多少,记为d[i],如果要对点x进行A操作,实际上只需要对子树加k - d[i]再 ...

  6. libcloud代码研究(一)——基本架构

    libcloud是apache下整合多种云服务接口的项目.最近,在研究libcloud代码的同时,将阿里云存储(Ali OSS)和百度云存储用libcloud storage driver规范进行封装 ...

  7. Sencha Toucha 2.1 文件上传

    javascript代码: Ext.onReady(function() { Ext.create('Ext.form.Panel', { title: 'Upload a Photo', width ...

  8. nyoj_17_单调递增最长子序列_201403121516

    单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4   输入 ...

  9. hdu_1038_Biker's Trip Odometer_201311021643

    Biker's Trip Odometer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...

  10. 洛谷 P2023 [AHOI2009]维护序列

    P2023 [AHOI2009]维护序列 题目描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中 ...