java面向对象---------类的无参方法

学习目标:

理解类的方法

定义和调用类的无参方法

理解变量的作用域


学习内容:

1.方法的组成部分:

访问修饰符 返回值类型 方法名(参数){
方法体//return也属于方法体的一部分
}
public String show(){

return "XZXX";
}

2.return 

return的作用是用来结束整个方法的,原则上return语句是需要放在方法的最后一行,但是加上选则结构后,有特殊用法

public String robBall(){

String ball = "球";
if(ball == null){

    return "面包";
}

    return ball;//?去掉试试

}

解释:假设去掉最后一行的return ball,那么当ball == null时,这个方法的确有return语句了,但是如果ball 不等于null时,这个方法就没有了return语句,这在有返回值的方法中是错误的。

3.无返回值方法和有返回值的方法

无返回值方法:使用的时void 作为返回类型,表示无返回值

public void show(){}

有返回值方法:就看return后面的是什么类型的结果, 那么就将void替换为该类型

例如

return 字符串,则void改为String
       public String show(){return "字符串"}
 
return 整型, 则void改为int 
       public int show(){return 1;}

return 数组, 则void 改为数组类型
    public String[] show(){
       String [] strs = {"a","b","aaa","admin"};
          return strs;
}

return true 或者false ,则void改为boolean 
    public boolean show(){
         return 3 > 4;
}
......
     

3.有返回值方法和无返回值方法的使用场景?(如何判断用哪种方法)

任何一个方法都可以定义成为一个有返回值的方法,但是调用者不需要返回值的时候,就不必要定义成有返回值的方法,也就是说,调用者不需要返回数据的时候,只需要定义成无返回值的方法即可。

当调用者或者设计者需要这个方法返回数据的时候,一定不能将该方法定义成无返回值方法。

简单来说就看需不需要这个方法返回数据,需要则定义有返回值方法,不需要则定义无返回值方法。

还有一种情况(重点!!!!!!!!!!!)

       方法中的数据如果全部都在方法内部使用,而不需要再调用者方使用,则需要定义成无返回值的方法;

       方法中的数据如果有需要再调用者方使用,则必须定义成有返回值的方法;

场景周老师给出两个数字,让小明计算,计算结果可以是小明报出来,也可以是周老师报出来

分析:
方法:小明计算的方法
    class 小明{
      计算(){
  
}
}  

情况一:计算结果可以是小明报出来
      说明,数据在小明这个类中使用,而周老师这个类不需要使用,因此该方法定义为无返回值方法
 class 小明{
    public void 计算(){
     System.out.println(计算结果)

}

}


情况二:计算结果可以是周老师报出来
       说明,数据在小明这个类中使用,也在周老师这个类使用,因此该方法定义为有返回值方法,小明需要将数据返回给周老师
  class 小明{
public int 计算(){
   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 numl = a.show();
//long num2 = a.show();
//double num3 = a.show();
}
同一个类中,方法的调用不需要创建对象,直接写方法名即可
class A{
   public int getSum(){

return 结果;
}
public double getAvy(){
return getSum()*1.0/3;

}
}

不同类中,需要先创建对象,然后使用对象名。方法名();

成员变量和局部变量
    成员变量:定义在类的内部,属于类的属性
    局部变量:定义在方法中、选择结果中、循环结构中、代码块中等

    成员变量:Java会给成员变量提供初始值
    局部变量:Java不会给局部变量提供初始值,需要开发者手动赋予局部变量初始值,否则在使用时,会报错

    同一个方法中不能存在同名的变量,但是不同的方法可以存在同名的变量

    在同一个类中,局部变量可以与成员变量同名,当同名时,局部变量具有更高的优先级
    也就是说,使用相同的变量名,局部作用域使用的是局部变量
    若局部作用域想使用成员变量,需要使用this.变量名

    在同一个局部作用域中,更内部的作用域不能再定义一个与外部作用域同名的变量

    总结:
        凡是带有大括号的都是作用域
        并且内部括号的作用域小于外部括号的作用域,
        因此内部作用域可以使用外部作用域的变量,但是外部作用域的变量不能使用内部作用域定义的变量。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值