扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
公共的。就是公用的。所以说你改了可能会出错或其它人不能用。你可以尝试覆盖或重写。
成都创新互联 - BGP机房服务器托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,BGP机房服务器托管,西南服务器托管,四川/成都大带宽,机柜大带宽租用·托管,四川老牌IDC服务商
它的意思是说,你定义的这个StudentTest 类,必须自己建立一个 StudentTest.java的文件来装着!
因为Java里面凡是加入了 public 标签的类,都有属于自己的一个java文件的。
你现在一个java文件里面包含了两个 带 public 标签的类,当然会出错!
若又不明白的请继续问我。
楼主先看看这段简洁版的代码:
class Person{ // 定义Person类
private Book book ; // 一个人有一本书
public void setBook(Book b){
book = b ;
book.setTitle("caca");
}
public Book getBook(){
return book ;
}
};
class Book{ // 定义Book类
private String title ; // 标题
public Book(String title) {
this.title = title;
}
public void setTitle(String t){
title = t ;
}
public String getTitle(){
return title ;
}
};
public class Test2{
public static void main(String arg[]){
Book book = new Book("hello");
Person person = new Person();
System.out.println("book.getTitle()---" + book.getTitle());
person.setBook(book);
System.out.println("person.getBook().getTitle()---" + person.getBook().getTitle());
System.out.println("book.getTitle()---" + book.getTitle());
System.out.println();
}
};
你的代码太长了,主要就是看上面这几行。理解我下面说的话,差不多就都理解了。
这里的输出结果是:
book.getTitle()---hello
person.getBook().getTitle()---caca
book.getTitle()---caca
为什么book.getTitle()前后的值不一样呢?
因为,setBook(book)方法中传递的实际上是一个指针,是对名字为”hello“的书的引用。person接收到这个引用之后,又对book里的名字赋值,更改为”caca"。最后,执行book.getTitle()时,
又是同一个引用。注意的是,从始至终,就只有一个真正的book,其他的都是对这个book的引用。因为,你只new了一个。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流