Java修饰符

Java修饰符

一、类修饰符(3种)

  • public
  • final
  • abstract

public 访问修饰符,公开访问

当前类可以在任何地方访问

final 最终类,不能被继承

当前类不能被继承
final 中文【最终的】

abstract 抽象类

当前类是抽象类,可以包含抽象方法,不能new实例对象

PS:对类来说
final和abstract不能同时使用,
原因abstract类一般要被子类继承并实现其抽象方法,而final则表示此类不能被继承。

常用例子:

公有类:

public class Abc{
	......
}

公有抽象类:

public abstract class Abc{
	......抽象方法可选,一般要有,也可没有
}

在这里插入图片描述

补充:静态内部类和非静态内部类

静态内部类 只能访问外部类的静态成员
非静态内部类 可以访问外部类的静态成员和非静态成员
详见:java中的Static class https://www.cnblogs.com/kissazi2/p/3971065.html

二、变量修饰符


2.1 成员变量(5种)

  • public/protected/不写/private
  • static
  • final
  • volatile
  • transient

public/protected/不写/private 访问修饰符

public: 【任何地方】     都可以访问
protected: 【当前成员变量所在包,或其他包中此类的子类】  可以访问
不写:【当前成员变量所在包 】可以访问
private: 【只在当前成员变量所在类中】 可以访问

static 静态变量

表示此变量为静态变量或类变量。在类加载时就被创建,在内存中只有一个副本。
可以通过类名.静态变量名访问,不必new出来一个对象之后再访问。

final 最终修饰符,不可修改变量

表示此成员变量的值不能被更改,在声明变量时必须用=初始化。
初始化之后试图修改final变量的值会报错。
	public  class Test {
	   
	    final int id = 1;
	    //final int id ;final成员变量不初始化会报错
	
		void fun(){
	     //  id = 1;//试图修改final变量的值会报错
	    }
	}

volatile 易失变量

表示此成员变量可同时被几个线程控制和修改
与并发有关
volatile中文【不稳定的、易变的】

原因final要求变量不能更改,bolatile表示变量可以被几个线程同时控制和修改

transient 短暂的(不需持久化,与序列化有关)

在对象序列化时,不会序列化此成员变量。
原因此成员变量不需要持久化,此成员变量可以被其他成员变量推出,
或没有序列化的必要。

PS:对成员变量来说
volatile和final不能同时使用

常用例子:

公有静态常量:用类名就可访问,但是不能修改值。

	public static final int MAX = 100;//公有静态常量

2.2 方法内的局部变量(1种)

只能用final修饰符修饰,表示此变量值不可以被修改。

格式: final/不写 变量名

对final修饰的局部变量:
- 声明时直接用=初始化,之后再用  变量名=值,无法通过编译
- 声明后用=赋值,之后不可再用  变量名=值,无法通过编译
	class Test2{
	    
	    void fun1(){
	        final int a=1;
	//      a = 1;//则报错
	//      a = 2;//则报错
	    }
	    
	    void fun2(){
	        final int a;
	        a = 1;
	//      a = 1;则报错
	//      a = 2;则报错
	    }
	    
	}

三、方法修饰符


3.1 构造函数(1种)

public/protected/不写/private 访问修饰符

访问修饰符参考上边。
格式: 
public/protected/不写/private + 类名(形参列表){
构造函数内容
}
PS:构造函数不需要写返回值,void也没有。
常用例子:

最常用的构造方法:

	public Student(int id){
	
	}

单例中防止其他函数调用构造函数:

	private Student(int id){
	
	}

3.2 非构造函数(6种)

public/protected/不写/private 访问修饰符

同上

static 静态方法

静态方法或类方法,可以通过类名.静态方法名 访问,
不需要先new一个对象再调用函数。

final 不可重写方法

子类继承父类时,不可以重写此方法。

abstract 抽象方法

不需要实现的方法

synchronized 同步方法

方法执行前加锁,其他线程不可以再执行此方法。
方法执行结束后解锁,其他线程可以再加锁执行此方法。

会影响性能
synchronized 中文【同步的】

native 本地方法

此方法会用其他语言在程序外部实现。一般为调用C++实现的方法,
与具体操作系统有关。

PS:对方法来说
final abstract 不能同时使用
static abstract不能同时使用

常用例子:

公有静态方法:

	public static int fun1(int num){
		.......
	}

四、接口的修饰符(1种)

接口的修饰符只有 public/不写。访问修饰符。

常用例子:

公有接口:

	public  interface IXXXHandlder{
		.......
	}

参考&致谢
java中的类修饰符、成员变量修饰符、方法修饰符。

JAVA修饰符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值