黑马程序员技术交流社区
标题:
java问题求教!
[打印本页]
作者:
丶小天
时间:
2014-2-20 18:12
标题:
java问题求教!
public class Book{
private String name;
public String getName(){//权限修饰符所修饰的单词第一个字母要大写,如String(关键字除外),是这样吗?
int id = 0;
setName("java");//调用类中的其他方法为什么是这种格式写法,不是对象.方法名或用关键字this(到目前,我只学过这两种调用方法的写法)?
return id + this.name;
}
private void setName(String name){
this.name=name;
}
public Book getBook(){
return this;
)
)
复制代码
作者:
___________゛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