类与对象知识的补充

本文深入解析Java中的四种代码块:普通代码块、构造块、静态块和同步代码块,通过实例展示它们的定义、用途及执行时机。同时,介绍了toString方法的使用和匿名对象的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码块

分类

1.普通代码块
2.构造块
3.静态块
4.同步代码块

普通代码块

定义在方法中的代码块;
例:
public class test{
public static void main(String[] args){
//普通代码块
{
int x=10;
System.out.println(“x1=”+x);
}
int x=100;
System.out.println(“x2=”+x);
}
}
输出结果为:
x1=10;
x2=100;

构造块

定义在类中的代码块,也叫实例代码块。构造代码块一般用于初始化实际成员变量。
例:
class Person{
private String name;
private int age;
private String sex;
public Person(){
System.out.println(“I am Person init()!”);
}
//实例代码块
{
this.name=“小明”;
this.age=16;
this.sex=“man”;
System.out.println(“I am instance init()!”);
}
public void show(){
System.out.println(“name:”+name+“age:”+age+“sex”+sex);
}

}
public class test{
public static void main(String[] args) {
Person p1=new Person();
p1.show();
}
}
运行结果为:
I am instance init()!
I am Person init()!
name:小明age:16sexman
注意事项:实例代码块优先于构造函数执行,并且产生n个对象就调用n次构造块,一般也可用构造块完成属性的初始化操作。

静态代码块

使用static定义的代码块,一般用于初始化静态成员属性。
例:
class Person{
private String name;
private int age;
private String sex;
private static int count=0;
public Person(){
System.out.println(“I am Person init()!”);
}
//静态代码块
static {
count=10;
System.out.println(“I am static init()!”);
}
public void show(){
System.out.println(“name:”+name+“age:”+age+“sex”+sex);
}
}
public class test{
public static void main(String[] args) {
Person p1=new Person();
Person p2=new Person();
}
}
注意事项:
1.静态代码块优先于构造代码块执行,在类加载时执行;主类中的静态代码块优先于主方法执行。
2.静态代码块不论生成多少个对象,其只会执行一次,且是最先执行。

补充说明

toString方法

定义:将任意类的对象转化成字符串,展示类中的属性信息;
任意一个类中,若没有提供toString()方法,则print函数输出其地址;若提供toString()方法,则print函数输出toString的返回值;
重点:
若使用IDEA编译器,快速生成toString方法的快捷键是:alt+insert;

匿名对象

没有被任何引用关联的对象,只能使用一次。
例:
class Person{
private String name;
private int age;
public Person(String name,int age){
this.age=age;
this.name=name;
}
public void show(){
System.out.println(“name:”+name+“age:”+age);
}
}

public class test{
public static void main(String[] args) {
new Person (“caocao”,19).show();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值