1.类的无参方法
方法的组成部分: 访问修饰符(可以不用写) 返回值类型 方法名(参数){
方法体 //return也属于方法体的一部分
}
public String show(){
return "XXXX";
}
return:(作用:跳出方法、返回结果,用来结束整个方法,原则上放在方法的最后一行,但加上选择结构时,有特殊用法)
public String robBall(){
String ball = "球";
if(ball == null){
return "面包";
}
return ball; // ?去掉试试
}
解释:假设去掉最后一行的return ball,那么当ball==null时,这个方法的确有return语句了,
但是如果ball不等于null时,这个方法就没有了return语句,这在有返回值的方法中是错误的。
方法的返回值:两种情况:①如果方法没有返回值,返回值类型为void
②如果方法具有返回值,方法中必须使用关键字return返回该值,返回 值类型为该返回值的类型。
如何判断是否使用返回值: 任何一个方法都可以定义成为一个有返回值的方法,但是调用者不需 要返回值的时候,就不必定义成有返回值的方法,
也就是说,调用者不需要返回数据的时候,只需要定义成无返回值的方法即可。
当调用者或者设计者需要这个方法返回数据的时候,一定不能将该方法定义成无返回值方法
简单来说就看需不需要这个方法返回数据,需要则定义有返回值方法,不需要则定义无返回值方法。
还有一种情况:(重点!!!!!!!!)
方法中的数据如果全部都在方法内部使用,而不需要再调用者方使用,则需要定义成无返回值的方法;
方法中的数据如果有需要在调用者方使用,则必须定义成有返回值的方法;
方法的调用: 如果方法是无返回值,则调用者在调用的时候,不能使用变量来接收!
class A{
public void show(){}
}
class B{
A a = new A();
a.show(); (不用变量接收)
}
如果方法是有返回值,则调用者在调用的时候,通常是必须要使用一个变量来接收这个方法的调用,
接收的变量类型必须与方法的返回值兼容/相同
class A{
public int show(){}
}
class B{
A a = new A();
int num1 = a.show(); (用变量来接收)
//long num2 = a.show();
//double num3 = a.show();
}
同一个类中,方法的调用不需要创建对象,直接写方法名即可
class A{
public int getSum(){
return 结果;
}
public double getAvg(){
return getSum() * 1.0 / 3;
}
}
不同类中,需要先创建对象,然后使用对象名.方法名();
成员变量和局部变量:
成员变量:定义在类的内部,属于类的属性
局部变量:定义在方法中、选择结果中、循环结构中、代码块中等
成员变量:Java会给成员变量提供初始值。
局部变量:Java不会给局部变量提供初始值,需要开发者手动赋予局部变量初始值,否则在使用 时,会报错。
同一个方法中不能存在同名的变量,但是不同的方法可以存在同名的变量。
在同一个类中,局部变量可以与成员变量同名,当同名时,局部变量具有更高的优先级。
也就是说,使用相同的变量名,局部作用域使用的是局部变量。
若局部作用域想使用成员变量,需要使用this.变量名。
在同一个局部作用域中,更内部的作用域不能再定义一个与外部作用域同名的变量
总结:
凡是带有大括号的都是作用域
并且内部括号的作用域小于外部括号的作用域,
因此内部作用域可以使用外部作用域的变量,但是外部作用域的变量不能使用内部作用域定义的变量。