person p person p = new person 的区别
时间: 2023-11-11 17:06:50 浏览: 220
在Java中,`person p` 和 `person p = new person` 有很大的区别。
`person p` 只是声明了一个名为p的person类型变量,但是并没有创建person对象。这意味着,在使用p之前需要先创建一个person对象。例如:
```
person p; //声明一个person类型变量p
p = new person(); //创建一个person对象并将其赋值给p
```
而 `person p = new person()` 则是声明并创建了一个person对象。这意味着,在使用p时,我们已经有了一个可用的person对象。例如:
```
person p = new person(); //声明并创建一个person对象p
p.setName("John"); //使用p对象的setName方法给p对象设置一个名字
```
因此,`person p` 只是声明变量,而 `person p = new person()` 则是声明变量并创建对象。
相关问题
1、创建一个Person类,具有name和age,两个成员变量。具有say()方法,可以在屏幕输出 name和age。 2、在Person类中添加构造方法,可以使用 Person p = new Person(tom,29);或 Person p = new Person(tom);形式初始
化对象,前者同时设置name和age,后者只设置name,age默认为0。实现代码如下:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(String name) {
this.name = name;
this.age = 0;
}
public void say() {
System.out.println("My name is " + this.name + ", I am " + this.age + " years old.");
}
}
```
使用示例:
```java
Person p1 = new Person("Tom", 29);
p1.say(); // 输出:My name is Tom, I am 29 years old.
Person p2 = new Person("Jerry");
p2.say(); // 输出:My name is Jerry, I am 0 years old.
```
已知定义一个person类class Person { int x; Person(int t){ x = t; } void change(int x, Person p) { x = x; p.x = x; } }运行Person p1 =new person(20); Person p2 =new person(30); p1.change(10,p2); System.out.println(p1.x); System.out.println(p2.x);
运行上述代码,输出结果为:
```
20
10
```
原因是:
首先创建了两个Person对象p1和p2,它们的x值分别为20和30。
然后调用了p1的change方法,传入参数10和p2。在change方法中,x值被重新赋值为传入的参数10,而p.x值被赋值为x,即10。
所以,p1的x值依然是20,而p2的x值变成了10。
因此,最终输出p1.x的值为20,p2.x的值为10。
阅读全文