java abstract 变量_【Java】基础:常见修饰符(权限修饰符以及abstract、static、final等)与变量的描述...

public、protected、private、default

abstract、static、final、

abstract:抽象类、抽象方法

static:静态变量、静态方法、静态代码块

final修饰类、方法、变量

transient、violatile、native、synchronized

2. 变量

实例变量、局部变量、类变量

1. 修饰符

· public、protected、 private、default

类的访问权限

当前类

同包其它类

子孙类

其它包的类

public

protected

×

default/缺省

×

×

private

×

×

×

能够修饰的位置

类/接口

方法

变量

public

protected

×

private

×

default/缺省

public class A{}

class B{}

· abstract 、static、 final、transient、violatile、synchronized

总述:可修饰的位置(空白处为无此用法)

方法

变量

代码块

abstract

static

final

transient

native

violatile

synchronized

abstract - 抽象类、抽象方法

/**

1. 被abstract修饰的类即为抽象类;

2. 抽象类的权限修饰符为public,缺省(如下)也为public;

3. 抽象类无法创建对象(即不能new);

4. 其余情况与普通类相同。

*/

abstract class animal {

int num;//成员变量可使用任何访问权限修饰词(public、protected、private)

/**

1. 抽象方法必须为public或protected,缺省即为public;

2. 抽象方法没有方法体,即符号{};

3. 子类中必须实现抽象方法,否则子类仍为抽象类。

*/

abstract void run();

}

class lion extends animal{

void run(){}

}

static:静态变量、静态方法、静态代码块

public class Test {

public static int a = 100;  //静态变量

public int b = 100;     //实例变量

//静态方法

public static void method_a() {

System.out.println("===static method===");

}

//实例方法

public void method_b() {

System.out.println("===instance method===");

}

public static void method_c() {

int c = 0;//局部变量

a = 5;//可访问[静态变量]

method_a();//可调用[静态方法]

//b = 5; 不能访问[实例变量]

//method_b(); 不能调用[实例方法]

}

public static void main(String[] args) {

Test t = new Test(); //创建实例化对象

int static_var = Test.a; //[类名.静态变量名]访问

int instance_var = t.b; //[对象.变量名]访问

Test.method_a(); //[类名.静态方法名]访问

t.method_b(); //[对象.方法名]访问

}

static { //静态块,在类加载时自动执行块中的内容

int d = 1;

int c = 0; //局部变量

a = 5; //可访问[静态变量]

method_a(); //可调用[静态方法]

//b = 5; 不能访问[实例变量]

//method_b(); 不能调用[实例方法]

}

}

final

1. final 修饰的类无法被继承;

2. final 修饰的方法无法在子类中重写(override)

3. final 修饰变量:基本类型变量,初始化后数值无法更改;引用类型变量,初始化之后不能再指向另一个对象。

4. final static修饰的为常量

transient

public class Test {

int a; //持久化

transient int b; //非持久化

}

synchronized为线程内容,在稍后的博文中描述;

violatile、native少有接触,以后再另作描述。

2. 变量

根据声明的位置划分: 成员变量、局部变量、类变量

根据所属数据类型划分:基本数据类型,引用数据类型

实例变量(成员变量)

局部变量

类变量(静态变量)

修饰符

修饰符不可出现

必须有static

定义位置

类中,方法、构造方法与语句块之外

声明在方法、构造方法、语句块

类中,方法、构造方法与语句块之外

变量的值可以在声明时指定,也可以在构造方法中指定,还可以在静态语句块中初始化。

访问

对象调用

类名.变量名

可见

实例变量对于类中的方法/构造方法/语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见

相关方法、构造方法或者语句块

与实例变量具有相似的可见性。

但为了对类的使用者可见,大多数静态变量声明为public类型

生存时间

与对象共存亡

方法/构造方法/语句块被执行时创建;执行完毕后销毁

在程序开始时创建,在程序结束时销毁。

分配位置

堆 (heap)

栈 (stack)

静态存储区(方法区)

默认值

同类变量

没有默认值,必须初始化才能使用

数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值