package test;
import java.util.Random;
public class Practise {
private String name;
static{
Random random = new Random();
int currInt = random.nextInt(10000);
System.out.println("Random CurrentInt: " + currInt);
}
{
System.out.println("代码块!!!");
}
public Practise(String name){
this.name = name;
}
public static void main(String[] args){
Practise p1 = new Practise("p1");
System.out.println("p1 1 name: " + p1.name);
setGetObject(p1);
System.out.println("p1 2 name: " + p1.name);
Practise p3 = new Practise("p3");
System.out.println("p2 1 name: " + p3.name);
setGetValue(p3);
System.out.println("p2 2 name: " + p3.name);
}
public static void setGetValue(Practise p){
p.name = "p2";
System.out.println(p.name);
}
public static void setGetObject(Practise p){
Practise p2 = new Practise("p2");
p = p2;
System.out.println(p.name);
}
}
import java.util.Random;
public class Practise {
private String name;
static{
Random random = new Random();
int currInt = random.nextInt(10000);
System.out.println("Random CurrentInt: " + currInt);
}
{
System.out.println("代码块!!!");
}
public Practise(String name){
this.name = name;
}
public static void main(String[] args){
Practise p1 = new Practise("p1");
System.out.println("p1 1 name: " + p1.name);
setGetObject(p1);
System.out.println("p1 2 name: " + p1.name);
Practise p3 = new Practise("p3");
System.out.println("p2 1 name: " + p3.name);
setGetValue(p3);
System.out.println("p2 2 name: " + p3.name);
}
public static void setGetValue(Practise p){
p.name = "p2";
System.out.println(p.name);
}
public static void setGetObject(Practise p){
Practise p2 = new Practise("p2");
p = p2;
System.out.println(p.name);
}
}
结果:
Random CurrentInt: 2494
代码块!!!
p1 1 name: p1
代码块!!!
p2
p1 2 name: p1
代码块!!!
p2 1 name: p3
p2
p2 2 name: p2
通过这个小例子可以知道:
1.一个方法可以改变一个对象参数(p2)的状态(name)
2.一个方法不能实现让对象参数应(p1)用一个新的对象(p3)
本文通过Java代码实例,展示了对象实例的创建、属性初始化、构造方法使用及对象属性的修改。重点阐述了静态代码块的作用以及如何通过方法改变对象状态。同时,介绍了Java中对象参数传递的特点,包括值传递与引用传递的区别。

被折叠的 条评论
为什么被折叠?



