java基础——方法

3、方法


 

java中的方法:

  1. 了解——方法,我的理解

何为方法

方法的作用

有些方法是用来初始化对象的

有些方法是用来输入数据的,

有些方法是程序的入口

有些方法是用来打印数据的,

有些方法是用来操作对象的

有些方法。。。。

 

  1. 如何定义 Java 中的方法

所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。

一般情况下,定义一个方法的语法是:

其中:

 

1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴。

因为方法是基于类的,那么如果类是protected,而方法是public的,这是方法的访问范围是什么?

 

2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值

3、 方法名:定义的方法的名字,必须使用合法的标识符

4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 

根据方法是否带参、是否带返回值,可将方法分为四类:

  1. 无参无返回值方法
  2. 无参带返回值方法
  3. 带参无返回值方法
  4. 带参带返回值方法

1、先看Java 中无参无返回值方法的使用

如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法。

方法的使用分两步:

第一步,定义方法

例如:下面代码定义了一个方法名为 show ,没有参数,且没有返回值的方法,执行的操作为输出 “ welcome to imooc. ”

注意哦:

1、 方法体放在一对大括号中,实现特定的操作

2、 方法名主要在调用这个方法时使用,需要注意命名的规范,一般采用第一个单词首字母小写,其它单词首字母大写的形式

第二步,调用方法

当需要调用方法执行某个操作时,可以先创建类的对象,然后通过  对象名.方法名();  来实现(关于类和对象的概念在后面章节中会详细讲解滴,先熟悉语法,表着急哦~~),注:这个对象名就是对象引用(这个对象引用变量中放的是该对象的地址),指向堆内存中的对象。

例如:在下面的代码中,我们创建了一个名为 hello 的对象,然后通过调用该对象的 show( ) 方法输出信息

 

上面代码的每一个单词,每一条语句都要理解。要知道自己写的每一个单词,没一条语句,每一个功能都代表什么意思,有什么用,不要糊里糊涂的写出来了,永远都是浮在表面。创作艺术的每一笔,艺术家都很清楚是干什么的,绝不多一笔,画蛇添足,也绝不少一笔,丢三落四,刚刚好,我写代码也是,敲出来的每一个东西都要知道他是什么意思。

先看第一行,最外层,这是在创建一个类,public 指明类的访问范围——任何地方都可以访问,class指明这是一个类,是java中最基本的组成单位,是一个单独的文件。而class后面的是类名,创建对象(引用)时会用到;

最下面的那个方法——show(),应该放到主方法上面,不过放那也没事,一般而言带有主方法的那个类是主类,单独作为一个文件,而show()方法一般不写在主方法一起,也单独另写在一个类文件中,这样带有主方法的那个主类,就可以作为demo,即一个测试类。说白了主类中,没有数据成员,没有其他方法,只有一个主方法。这是程序的入口,主类哟啊尽量简洁。

show()方法中,有public,决定该方法的访问范围,但是方法的访问范围一般依赖于类的访问范围,即决定权在类的手中。这里后期会逐渐讲到。void 说明该方法无返回值,show是方法名,在调用的时候会用到。而show后面的那个括号用来放形式参数的,可以含参,也可以不含参,参数的类型可以是基本类型的参数(int(short,long,int),type,float,double,char,boonlean,),也可以是引用类型的参数(类,即对象引用,接口?数组? 字符串?枚举等等后期会去深入研究,暂且不了解)。

而show方法体中,

 

今天就以这个例子,对Java中的类 ,做一个全面深入解释。

注:其余三种方法例子自行去找。各自的使用场景,举例来理解,并加以总结。

 

 

在一个类中调用另一个类中static方法或变量时要使用 类名.方法名或者类名.属性名;如果调用的是非静态的方法或属性则要用类的对象去调用,即对象.方法或对象.属性。

 

Java 中无参带返回值方法的使用

如果方法不包含参数,但有返回值,我们称为无参带返回值的方法。

例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值为 int 类型的方法,执行的操作为计算两数之和,并返回结果

在 calSum( ) 方法中,返回值类型为 int 类型,因此在方法体中必须使用 return 返回一个整数值。

调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。如:

运行结果为: 两数之和为:17

注:有返回值都是在方法内部实现功能,但是得到的结果给别人!,无私奉献,对于这个程序,没有参数,不太好,最好用带参数来求两个数的和或者平均值,这样只要用实参传递一下就可以求和或者求平均值了。要不然把数字换一下,还得去已经封装好了的方法calcSum()中修改 a,b的值。注意,对于求和的部分不要出现在主方法内,最好封装在求和方法内,这样具体的细节全都隐藏了,这体现了Java封装的一大特点,如果放在主方法内,那和C一样了,面向过程了不是。简单来说用无参数但有返回值的方法求两个数之和或者平均值,不合适,最好用含参数有返回值的方法来求,这里不是说无参数有返回值方法不好,只是说不适用于这种场景。

 

不容忽视的“小陷阱”:

1、 如果方法的返回类型为 void ,则方法中不能使用 return 返回值!

补充:返回类型为void的方法可以不含return语句,若含有的话,则return后不能跟任何内容而直接用分号结尾。

2、 方法的返回值最多只能有一个,不能返回多个值

3、 方法返回值的类型必须兼容,例如,如果返回值类型为 int ,则不能返回 String 型值

任务

在编辑器中已经定义了一个名为 calcAvg 的方法,用来计算两门课程成绩的平均值,并返回结果。

请在第 9、15、22 行中将代码填写完整,实现调用 calcAvg( ) 方法,并输出平均成绩。

运行结果为: 平均成绩为:87.75

 

问题:

1、怎么样在方法中返回多个值?return只能返回一个值,或者一个值都不返回

2、创建对象名的意义在于?

3、定义方法与使用方法的顺序问题

4、局部变量名(22行)和全局变量名(第9行)重名

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,由于浮点数的精度问题,可能会出现无限循环小数。对于这种情况,可以使用BigDecimal类来处理。 BigDecimal类可以表示任意精度的十进制数,它可以处理大于64位的整数和小数。在使用BigDecimal类时,需要注意以下几点: 1. 使用BigDecimal类时,应该使用其构造方法来初始化BigDecimal对象,而不是使用double类型的值来初始化。 例如: ``` BigDecimal bd = new BigDecimal("0.1"); ``` 2. 在进行浮点数运算时,应该使用BigDecimal类提供的方法,而不是使用double类型的运算符。 例如: ``` BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2"); BigDecimal c = a.add(b); ``` 3. 在比较两个BigDecimal对象的值时,应该使用compareTo()方法,而不是使用等于(==)或不等于(!=)运算符。 例如: ``` BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2"); if (a.compareTo(b) < 0) { System.out.println("a < b"); } else if (a.compareTo(b) > 0) { System.out.println("a > b"); } else { System.out.println("a = b"); } ``` 关于java无限循环小数判定问题,可以通过以下代码来解决: ``` public static boolean isRepeatingDecimal(BigDecimal num) { BigDecimal[] arr = num.divideAndRemainder(BigDecimal.ONE); BigDecimal decimalPart = arr[1]; String decimalStr = decimalPart.toString().substring(2); // 去掉小数点和整数部分 if (decimalStr.length() < 2) { return false; // 小数部分长度小于2,不可能循环 } int halfLength = decimalStr.length() / 2; for (int i = 1; i <= halfLength; i++) { String str = decimalStr.substring(0, i); if (decimalStr.matches("^(" + str + ")+(.*)" + str + "$")) { return true; // 存在循环节 } } return false; // 不存在循环节 } ``` 该方法接收一个BigDecimal对象,判断其是否为无限循环小数,返回true或false。 以上是关于Java中处理无限循环小数的基础知识和方法介绍,希望能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值