A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丶小天 中级黑马   /  2014-2-20 18:12  /  1254 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. )
复制代码

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
首先,你的返回值类型,是JAVA里面的关键字,要按照规范写,该大写大写该小写小写。
第二个关于在本类中调用本类中的方法里,可以不写对象名,其实是隐藏了一个关键字this.这个关键字,表示为当前对象去调用该方法 。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
你说的第一问题有误,权限修饰符修饰的是成员,不是所谓的单词。而且返回值类型跟权限修饰符是两码事,要分清楚,比如:private int age;。
第二个问题,在一个类中有super,this等隐藏关键字,你这样写,前面是有默认的this.的。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
1,权限修饰符后面的单词有大写 也有小写 无必然联系 根据实际来判断大小写 参考Java语法命名规则就可以
2.setName前有默认的this

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
答问题一:我估计你是被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(){  }
}
这样是可以的。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
对于第一个问题,String权限修饰符修饰的是成员首字母大写是固定的,不同于数据类型(如int,char),对于第二个问题,this是隐藏的,在本类中可以直接调用,再有String类型属于静态的,可以不用new对象而直接调用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马