Java中this,static,super及finalkeyword和代码块

this:

  1. 能够使用this表示类中的属性------this.name=name
  2. 能够使用this强调调用的是本类的方法
  3. 能够使用this调用本类的构造方法------this();调用本类中无參构造方法
  4. 能够使用this表示当前对象(调用方法的对象)----最重要的用途

static:

  1. 声明属性---------属性则为全局变量
  2. 声明方法---------Person.setName("Tom");使用类名称调用static方法

final:

  1. 使用final声明的类不能有子类
  2. 使用final声明的方法不能被子类覆写
  3. 使用final声明的变量即成为常量,常量不能够改动(使用final声明变量时,要求所有的字母大写)

spuer:

  1. 调用父类的构造方法
  2. 调用父类的普通方法
  3. 调用父类的属性

注意点:this和super必须放在构造方法内的首行,正式这个原因,this()和super()无法同一时候存在一个构造方法内

普通代码块:直接在方法或是语句中定义的代码块

public class CodeDemo01{
	public static void main(String args[]){
		{		// 普通代码块
			int x = 30 ;	// 就属于一个局部变量
			System.out.println("普通代码块 --> x = " + x) ;
		}
		int x = 100 ;		// 与局部变量名称同样
		System.out.println("代码块之外 --> x = " + x) ;
	}
};

构造块:直接写在类中的代码块

class Demo{
	{	// 直接在类中编写代码块,称为构造块
		System.out.println("1、构造块。") ;
	}
	public Demo(){	// 定义构造方法
		System.out.println("2、构造方法。") ;
	}
};
public class CodeDemo02{
	public static void main(String args[]){
		new Demo() ;		// 实例化对象
		new Demo() ;		// 实例化对象
		new Demo() ;		// 实例化对象
	}
};

执行结果:

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

静态代码块:使用statickeyword声明的代码块

class Demo{
	{	// 直接在类中编写代码块,称为构造块
		System.out.println("1、构造块。") ;
	}
	static{	// 使用static,称为静态代码块
		System.out.println("0、静态代码块") ;
	}
	public Demo(){	// 定义构造方法
		System.out.println("2、构造方法。") ;
	}
};
public class CodeDemo03{
	static{		// 在主方法所在的类中定义静态块
		System.out.println("在主方法所在类中定义的代码块") ;
	}
	public static void main(String args[]){
		new Demo() ;		// 实例化对象
		new Demo() ;		// 实例化对象
		new Demo() ;		// 实例化对象
	}
};


执行结果:

在主方法所在类中定义的代码块

0、静态代码块

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

结论:

    1. 静态代码块优先于主方法运行
    2. 类中定义的静态代码块优先于构造块运行(无论多少对象产生,仅仅运行一次)
时间: 2024-08-07 08:37:14

Java中this,static,super及finalkeyword和代码块的相关文章

Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解

(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的 这是程序入口 两者的区别就是:静态代码块是自动执行的; 静态方法是被调用的时候才执行的. 静态方法 (1)在Java里,可以定义一个不需要创建对象的方法,

关于Java中this和super的用法介绍和区别

1.this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的.要注意的是this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this.his也可作为构造函数来使用.在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类.super的作用同样是可

java中的static详解

如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象.static 成员的最常见的例子是main( ) .因为在程序开始执行时必须调用main() ,所以它被声明为static. 声明为static的变量实质上就是全局变量.当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量,例如:声明一个static的变量count作为new一个类实例的计数.声明为static的方法有以下几条限制: 1.它们仅能调用其他的s

关于 Java 中的 static 关键字

Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键. Java中的 static 关键字主要是用来做内存管理的.理解了这句话才能够比较深入地理解static. static 可以修饰: 变量(所谓 class variable) 方法(所谓 class method) 代码块(所谓 block) 内部类(所谓 nested class) 凡是被 static 修饰的这四种元素,都属于class的元素,即类的,而不是类的实例的. 1

Java中this与super的区别【6】

本文原创作者:pipi-changing 本文原创出处:http://www.cnblogs.com/pipi-changing/ 本文版权归作者和博客园共有,未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接 ,否则保留追究法律责任的权利. Java中this与super的区别  this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. Java关键字this只能用于方法的方法体内.当一个对象创建后, Java虚拟机(JV

java中 this和super的差别

this表示当前调用方法的对象的引用: (谁调用这种方法,谁就是这个对象,这个this就是它的引用) 比方: <pre name="code" class="java">public class This_Demo{ String name; public void setName(String name) { this.name = name;// 前一个name是 本类的成员属性: name:后一个name是setName中的參数. } public

Java 中的 static 使用

static关键字 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了! static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.只要这

java中 this和super的区别

this表示当前调用方法的对象的引用: (谁调用这个方法,谁就是这个对象,这个this就是它的引用) 比如: <pre name="code" class="java">public class This_Demo{ String name; public void setName(String name) { this.name = name;// 前一个name是 本类的成员属性: name:后一个name是setName中的参数. } public

JAVA中this和super用法

参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对象,但是这个对手并不是完全由构造器负责创建. 创建一个对象分为如下四步: a. 分配对象空间,并将对象成员变量初始化为0或者null b. 执行属性值的显式初始化 c. 执行构造方法 d. 返回对象的地址给相关变量 this的本质就是"创建好的的对象的地址", 由于在构造方法调用前,对象已