黑马程序员技术交流社区

标题: java问题求教! [打印本页]

作者: 丶小天    时间: 2014-2-20 18:12
标题: java问题求教!
  1. public class Book{
  2.         private String name;
  3.         public String getName(){//权限修饰符所修饰的单词第一个字母要大写,如String(关键字除外),是这样吗?
  4.         int id = 0;
  5.         setName("java");//调用类中的其他方法为什么是这种格式写法,不是对象.方法名或用关键字this(到目前,我只学过这两种调用方法的写法)?
  6.         return id + this.name;
  7.         }
  8.         private void setName(String name){
  9.                 this.name=name;
  10.         }
  11.         public Book getBook(){
  12.                 return this;
  13.         )
  14. )
复制代码

作者: ___________゛M    时间: 2014-2-20 18:37
首先,你的返回值类型,是JAVA里面的关键字,要按照规范写,该大写大写该小写小写。
第二个关于在本类中调用本类中的方法里,可以不写对象名,其实是隐藏了一个关键字this.这个关键字,表示为当前对象去调用该方法 。
作者: 夏新¤Amoi    时间: 2014-2-20 19:13
你说的第一问题有误,权限修饰符修饰的是成员,不是所谓的单词。而且返回值类型跟权限修饰符是两码事,要分清楚,比如:private int age;。
第二个问题,在一个类中有super,this等隐藏关键字,你这样写,前面是有默认的this.的。

作者: 松涛小玮    时间: 2014-2-20 19:19
1,权限修饰符后面的单词有大写 也有小写 无必然联系 根据实际来判断大小写 参考Java语法命名规则就可以
2.setName前有默认的this
作者: luoanjade    时间: 2014-2-20 19:29
答问题一:我估计你是被String这个对象骗了。String是一个字符串对象,即它的首字母大写是固定的。就跟你定义一个类一样,首字母大写跟前面的修饰没有任何关系。它并不是一个简单的数据类型。它跟int,char等是不一样的。例如:int类型的,就是
private int a;
public int getA(){ return a;}

答问题二:首先赞同楼上的说法。这里补充一下。
你上面是在非静态方法里调用非静态方法,这样是允许的。但是在静态方法里不能调用非静态方法。例如:
class A{
    public void abc(){ return ;}
    public static void bcd(){ abc(); }
}
这样是错的。因为静态方法是提前加载的。这个时候可能非静态方法根本就还没加载。所以,是部允许在静态方法里面调用非静态方法的。例如:
class A{
    public void abc(){ bcd() ;}
    public static void bcd(){  }
}
这样是可以的。
作者: 明天你好    时间: 2014-2-26 13:14
对于第一个问题,String权限修饰符修饰的是成员首字母大写是固定的,不同于数据类型(如int,char),对于第二个问题,this是隐藏的,在本类中可以直接调用,再有String类型属于静态的,可以不用new对象而直接调用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2