首页 > 编程 > Java > 正文

java--修饰符

2019-11-06 09:00:26
字体:
来源:转载
供稿:网友

1、修饰符 访问修饰符:(局部变量不需要修饰符,没有意义,因为范围只在代码块当中) PRivate 属性 方法 构造方法 (default)属性 方法 构造方法 类 protected 属性 方法 构造方法 public 属性 方法 构造方法 类

static 静态的 1)属性 类变量 全类公有 允许直接用类名访问,与对象无关。 类加载:当JVM第一次使用一个类时,需要通过ClassPath找到这个类对应的.class文件,把这个文件中包含的类的信息读入JVM并保存起来。一般来说,一个类只会加载一次。 类变量是在类加载的时候分配空间,并且初始化。 类加载的时机: a.创建类的对象 b.访问类的静态成员 c.加载子类必须先加载父类 d.如果是仅仅是声明类的引用,是不会加载的。 2)方法 静态方法 允许用类名调用 在静态方法中,只能访问类的静态成员。 父类的静态方法,只能被子类的静态方法覆盖。 静态方法可以被子类的静态方法覆盖,而且没有多态。 对引用调用其静态方法,仅相当于对引用类型调用静态方法。 3)初始代码块 静态初始化代码块,在类加载的时候执行一次 下面初始代码块

{ System.out.println("hh"); }

静态初始代码块

static{ System.out.println("hh");}

HH只打印一次

package chp7;public class TestStaticInit{ public static void main(String[] args){ new MyClass(); new MyClass(); }}class MyClass{static{ System.out.println("hh");}public MyClass(){ System.out.println("MyClass()"); }}

static int b=20; //不是实例变量,是类变量 实例变量是创建对象,分配空间时有的。 类变量,是在类加载时有的。 什么是类加载?

package chp7;public class TestStatic{ public static void main(String[] args){ MyClass mc1=new MyClass(); MyClass mc2=new MyClass(); mc1.a++; mc1.b++; System.out.println(mc2.a); System.out.println(mc2.b); System.out.println(MyClass.b); MyClass.print();}}class MyClass{ int a=10; static int b=20; public static void print(){ // System.out.println(a);error; MyClass c=new MyClass(); System.out.println(c.a); System.out.println(b); System.out.println("11"); }}

final final 变量:(实例变量、局部变量、类变量) 常量 一旦赋值 不能改变了 对于final属性 系统不会提供默认值 如果final实例变量 可以再初始化属性或是构造方法中赋值。

方法:该方法不能被子类覆盖 类:该类不能被子类继承

一个类是final类中所有方法都是默认final方法 final在java中非常最重要的作用: 使用最多的类 String类 体现final

abstract 学习接口的铺垫 类:抽象类 方法:抽象方法

子类继承抽象类,如果子类不希望也成为抽象类,就必须实现父类中声明的所有抽象方法。

利用abstract,可以把方法声明抽象到父类中,而方法实现留在子类,更好的体现”共性放在父类”原则! private static final 均不能和abstract联用。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表