Java基础知识(四)
来源:互联网 发布:程序员等级划分 编辑:程序博客网 时间:2024/04/28 20:17
Java关键字
1.static
- static关键字
- 1、用static关键字修饰的成员都是类成员(类成员不需要通过对象/实例去访问)
- 2、类成员可以通过类名直接访问
- 3、类成员也可以通过对象去访问
- 4、一个为空的类型对象也可以调用类中的类成员,不会报空指针异常
- 5、类成员只有一份资源,通过类名访问,对象访问,空对象访问的都是同一份资源,
- 只要修改一次,那么其他访问结果也会全部被修改
- 6、static关键字可以修饰属性、方法、代码块和内部类
- 7、类成员(静态成员)不能直接访问实例成员(非静态成员)
- 8、实例成员可以随意访问类成员
- 9、在类成员中不能使用this和super关键字
- 10、类成员会随着类加载的时候被加载,仅仅只会被加载一次
public class StaticDemo { public static void main(String[] args) { // TODO Auto-generated method stub Car s = null; System.out.println(Car.type); Car c = new Car(); System.out.println(c.type); Car c2 = null; System.out.println(c2.type); Car c3 = new Car(); System.out.println(c3.type);//X6 Car c4 = null; System.out.println(c4.type); }}/** * 宝马X5汽车类 * @author Ken * */class Car{ /** * 实例成员 */ int weight; /** * 类成员 */ static String type = "宝马X5";//型号 public static void run(){ System.out.println("父类的静态方法"); }}class SmallCar extends Car{ public static void run(){ System.out.println("子类的静态方法"); }}
2.final
* final – 最终的
* 1、final的修饰范围:类(外围类和内部类)、属性(全局属性和局部属性)、方法
* 2、final修饰属性:表示该属性只能初始化一次,过后不能在改变该变量的值
* 例如:final int i; i = 10; 或者 final int i = 10;
* 1)如果final修饰全局变量,则全局变量不在会被系统自动初始化,需要程序员手动为该变量初始化
* 2)如果final修饰的是引用变量,则表示该变量不能修改对象的指向,设置为null也不行
* 对象中的属性仍然可以随意修改
*
* 3、final修饰方法:表示该方法无法被子类重写,但是子类的重写方法可以添加final修饰符
* 4、final修饰类:表示该类不能被继承
//定义一个常量,通常常量名全部大写 public static final int MAX = 10;
常量类
/** * 常量类 * @author Ken * */public class Constants { public static final String NEWS_URL = "www.baidu.com";}
3.单例模式
* 单例模式:某个类,在任何情况下,都希望得到同一个对象
* 1、把构造方法私有化
* 2、提供一个方法获得类的对象
public class SingleClass { //懒汉式的单例模式,比较懒,自己不主动创建对象(线程不安全) private SingleClass(){}//把构造方法私有化,不允许外界通过构造方法创建新的对象 private static SingleClass singleClass = null; //提供一个方法获得类的对象 public static SingleClass getInstance(){ if(singleClass == null){ singleClass = new SingleClass(); } return singleClass; }}
public class SingleClass2 { //饿汉式单例模式,比较饿,初始化的时候就把对象给创建出来了 private SingleClass2(){}//构造方法私有化 private static SingleClass2 singleClass2 = new SingleClass2(); public static SingleClass2 getInstance2(){ return singleClass2; }}
0 0
- Java基础知识(四)
- Java 基础知识 (四 )
- Java基础知识总结(四)
- java基础知识(四)
- Java基础知识(四)
- Java基础知识(四)
- java基础知识四
- java基础知识(四)
- java基础知识(四)
- Java基础知识 四 集合
- JAVA基础知识梳理(四)
- java基础知识回顾(四)
- Java基础知识整理(四)
- Java多线程基础知识(四)
- Java基础知识 四 (数组)
- java基础知识(四)--泛型
- java基础知识查漏 四
- java 基础知识四 流程控制
- 17个月,是时候离开了
- Python Tutorial three
- 【计算机网络】网络编程中为什么client不建议绑定
- 编写手机信息页面流程
- CPU飙高调试
- Java基础知识(四)
- C++11系列-区间迭代
- 关于网页页头的“设为首页”和“联系我们”位置互换问题
- 数据结构与算法 -- 时间复杂度
- Unit 4-Lecture 1:Intro to Discrete Probability
- xml和json格式的比较
- C++11系列-常量表达式
- Ubuntu下,清屏等常用命令
- 堆栈、堆、方法区介绍