java--修饰符

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联用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值