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

  • 1. 修饰符

    • public、protected、private、default
    • abstract、static、final、
      • abstract:抽象类、抽象方法
      • static:静态变量、静态方法、静态代码块
      • final修饰类、方法、变量
    • transient、violatile、native、synchronized
  • 2. 变量
    • 实例变量、局部变量、类变量

1. 修饰符

· public、protected、 private、default

修饰时的访问权限

  当前类 同包 子孙类 其它包
public
protected ×
private × ×
default/缺省 × × ×

能够修饰的位置

  方法 变量
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。

原文地址:https://www.cnblogs.com/tubybassoon/p/9524973.html

时间: 2024-08-16 01:31:56

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

浅析java修饰符之public default protected private static final abstract

浅析java修饰符之public default protected private static final abstract 一   修饰符的作用:用来定义类.方法或者变量,通常放在语句的最前端 二   分类(大致分两类) 1.访问修饰符,包括:public default protected private 2.非访问修饰符,包括:static final abstract 三 访问修饰符--Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权

Java基础常见英语词汇

(转自http://www.jianshu.com/p/2743fe834166) Java基础常见英语词汇(共70个) ['?bd?ekt] ['?:rientid]导向的 ['pr??ɡr?m??]编程OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程 [d?'vel?pm?nt][k?t]工具箱 ['v??tj??l]虚拟的JDK:Java development kit, java开发工具包 JVM:java

Java简单语法与访问权限修饰符

Java简单语法总结 一:Java简单语法概述 1:分号,关键字,空白(空格,空白行),花括号和注释的使用. 2:标识符的规则(命名规则与业内约定). 3:Java表达式(逗号,问号和逻辑表达式). 二:分号,关键字,空白(空格,空白行),花括号和注释的使用 1:分号  在Java中通常用来分隔语句,即作为分隔符,另外它也是一个语句结束的标志. 2:关键字 通俗的理解,在编译器Eclipse中像"public","class"这些输入的时候就带有颜色的字成为关键字,

Java系列学习(十)-包与权限修饰符

1.形式参数和返回值的问题 (1)形式参数: A:类名:需要该类的对象 B:抽象类名:需要改类的子类对象 C:接口名:需要该接口的实现对象 (2)返回值类型: A:类名:抽象类名:返回的是该类的对象 B:抽象类名:返回的是该类的子类对象 C:接口名:返回的是该接口的实现类对象 (3)链式编程 每次调用完毕方法后,返回的是一个对象 2.包 (1)其实就是文件夹   (2)作用: A:区分同名的类 B:对类进行分类管理 ①按照功能分 ②按照模块分 (3)包的定义: ①package 包名; ②多级包

java面向对象之关键字,权限修饰符

1.关键字:this,static,package,importthis:1.表示对当前对象的引用!2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下.3.用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法).但是这里必须非常注意:只能引用一个构造方法且必须位于开始!还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明

java基础语法 (标识符,修饰符,关键字)

一.标识符 定义: 对各种变量.对象.数组.集合.方法.类和包等要素命名时使用的字符序列. (1)组成规则:①英文大小写字母 ②数字 ③$和_ (2)注意事项:①不能以数字开头 ②不能使用java中的关键字 ③区分大小写 (3)常用的命名规则 ①包                  全部小写                                                                                      举例:cn.itcast.com.b

Java 中的四种权限修饰符

* * private: * Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”. * 被其修饰的属性以及方法只能被该类的对象 访问,其子类不能访问,更不能允许跨包访问. * * default: * 即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”. * 该模式下,只允许在同一个包中进行访问. * * protected: * 介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”. * 被其修饰的属性以及方法只能被类本身的方法及子

Java中的四种权限修饰符

权限修饰符   public protected [default] private 同一个类 YES YES YES YES 同一个包 YES YES YES NO 不同包子类 YES YES NO NO 不同包非子类 YES NO NO NO 注意:不写权限修饰符就代表“default” 原文地址:https://www.cnblogs.com/biggw/p/11783579.html

Java修饰符 abstract,static,final 的区别详解

一:static 表示静态,它可以修饰属性,方法和代码块. 1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有.这个属性就是全类公有.(共有的类变量与对象无关,只和类有关). 类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件(字节码文件)读入JVM(java虚拟机),这个过程成为类的加载.JVM(java虚拟机)会通过类路径(CLASSPATH)来找字节码文件. 类变量

Java修饰符abstract,static,final的区别

注意:有抽象方法的类一定是抽象类.但是抽象类中不一定都是抽象方法,也可以全是具体方法.abstract修饰符在修饰类时必须放在类名前. abstract修饰方法就是要求其子类覆盖(实现)这个方法.调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类. 注意:父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有抽象方法都实现(覆盖)了,子类才有创建对象的实例的能力,否则子类也必须是抽象类.抽象类中可以有构造方法,是子类在构造子类对