Java面向对象基础--代码块

1、普通代码块

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) ;
	}
};

代码块之外,引用变量x会报错。局部变量的作用域。

2、构造块

将代码块直接定义在类中,称为构造块。

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() ;		// 实例化对象
	}
};

构造块优先于构造方法执行,且执行多次,只要一有实例化对象产生,就执行构造块中的内容。

3、静态代码块

使用static关键字声明的代码块, 为静态代码块。

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() ;		// 实例化对象
	}
};

静态代码块优先于主方法执行,普通类中定义的静态块优先于构造方法执行。不管有多少个实例化对象产生,静态代码块只执行一次。

静态代码块的作用:主要就是为静态属性初始化。

时间: 2024-08-22 22:19:02

Java面向对象基础--代码块的相关文章

java中static{.......}代码块的作用

问题描述 java中static{.......}代码块的作用 java中static{.......}代码块主要用在哪里,表示什么意思,有什么用,里面主要写什么内容 解决方案 static后不跟方法名,这个块在该类第一次加载的时候运行,就是说比初始化模块还早就运行,一般用于加载该类需要一次性完成的功能使用. 解决方案二: Java中的static静态代码块 解决方案三: 初始化用,不需要创建实例,当你访问这个类时,就会执行 解决方案四: static 就是静态.你可以搜索一下关于静态的解释.网

Java 构造函数 静态代码块

问题描述 Java 构造函数 静态代码块 public class 静态 { public static void main(String[] args) { person p=new person(); p.show(); person p1=new person("xixi"); p1.show(); } } class person{ ** 这里显示"person"错误** private String name; { cry(); } { System.ou

线程-关于java sychronized锁代码块对该对象的其它sychonized方法是否有影响的问题。

问题描述 关于java sychronized锁代码块对该对象的其它sychonized方法是否有影响的问题. 代码是书上例子,我简化了,启用线程ob1后,通过主线程调用sychonized方法mysuspend()和myresume()来控制ob1线程的等待与重启.线程从15开始倒数,0.5秒个,主线程在1秒时候暂停文字提示,再过1秒重启线程.例子中的sychonized代码块仅包含wait()判定部分,输出与预期一样,倒数到14的时候中断,之后又恢复.但是当我将sychonized代码块前移

深入浅析Java中普通代码块、构造代码块与静态代码块_java

//执行顺序:(优先级从高到低.) 静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为普通代码块. *普通代码块执行顺序由他们在代码中出现的次序决定--"先出现先执行" * */ { System.out.p

Java面向对象基础---名词概念的理解:方法的重载、构造函数、封装性

方法的重载:方法名称相同,但参数的类型和个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用. 例如:System.out.println();属于方法的重载. 方法的重载一定是根据参数类型和个数来判断的. 构造函数:构建创造对象时调用的函数.作用:可以给对象进行初始化.Tip:函数名与类名相同,不用定义返回值类型,没有具体的返回值.   面向对象特征:1.封装(encapsulation)对外部不可见,保护程序的某些内同.2.继承性(inheritance)扩展功能.3.多态(pol

Java面向对象基础--类的设计及分析问题的方法---用户登录例子

1.用户登录的示例 首先要做的就是先把功能实现: public class LoginDemo01{ public static void main(String args[]){ if(args.length!=2){ // 应该判断输入的参数个数是否是2 System.out.println("输入的参数不正确,系统退出!") ; // 给出一个正确的格式 System.out.println("格式:java LoginDemo01 用户名 密码") ; Sy

Java面向对象基础--构造方法私有化

1.对构造方法进行封装 class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void print(){ System.out.println("Hello World!!!") ; } }; 2.使用 被私有化构造方法的Singleton类,不能在外部直接实例化. class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void pri

java面向对象基础_final详细介绍_java

final: 继承的弊端:打破了代码的封装性,final的出现正好弥补了这一弊端 final关键字: 1-final是一个修饰符,可以修饰类,方法,变量; 2-final修饰的类不能被继承 3-final修饰的方法不可以被覆盖 4-final修饰的变量是一个常数,只能被赋值一次并且要在定义时就将其赋予某值 规则: 被定义final的常量要用大写字母表示,各单词之间用下划线_来隔开. 实例一: class Father01{ final String FATHER01_NAME = "张三&quo

Java面向对象基础--构造方法

只要一有对象实例化,就会调用此方法.   在整个JAVA的操作中,如果一个类中,没有明确的声明一个构造方法,则会自动产生一个没有参数的,什么都不做的构造方法,供用户使用.       构造方法的主要目的:就是为类中的属性进行初始化: 匿名对象:没有名字,在java中,如果一个对象只使用一次,就可以将其定义成匿名对象. 总结: 对象在实例化的时候,必须调用构造方法: 每个类中至少有一个构造方法: 匿名对象,只开辟了堆内存的实例对象: