上一篇博客:运算符
目录
- 方法入门
- JShell脚本工具
- 拓展知识点
开始
一、方法入门
- 方法的概述
我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且 重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。
方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
放在C\\C++面向过程程序设计中就是称为函数,Java是完全面向对象的,所以称为方法。当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象
- 方法的定义
定义格式:
修饰符 返回值类型 方法名 (参数列表){代码;return ;}/*修饰符:目前固定写法public static返回值类型:目前固定写法void方法名:满足小驼峰命名法参数列表:目前无参数,后面会学习有参数的return:方法结束返回值类型为void,方法大括号内的return可以不写*/public static void methodName() {System.out.println(\"这是一个方法\");}
- 方法的调用
方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法。在主方法中,直接写要调用的方法名字就可以调用了。
public static void main(String[] args) {//调用定义的方法methodmethod();}//定义方法,被main方法调用public static void method() {System.out.println(\"自己定义的方法,需要被main调用运行\");}//练习public class Method{public static void main(String[] args){operator();}public static void operator(){int i = 0;i = (1 == 2 ? 100:200);System.out.println(i);int j = 0;j = (3<=4 ? 500 :600);System.out.println(j);}}
- 注意事项
- 方法必须定义在类中方法外
- 方法中不能在定义方法(函数中不能定义函数)
二、JShell脚本工具
JShell脚本工具是JDK9的新特性
什么时候会用到 JShell 工具呢,当我们编写的代码非常少的时候,而又不愿意编写类,main方法,也不愿意去编译和运
行,这个时候可以使用JShell工具。启动JShell工具,在DOS命令行直接输入JShell命令。
接下来可以编写Java代码,无需写类和方法,直接写方法中的代码即可,同时无需编译和运行,直接回车即可
三、拓展知识点
-
+=
符号的扩展
public static void main(String[] args){short s = 1;s+=1;//相当于 short s = (short) (s + 1)//s = s + 1相当于 short s = (int) ( s = s + 1),会报错System.out.println(s);}
换成 s = s +1
分析:
s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围大的类型赋值到取值范围小的类型。
但是, s=s+1进行两次运算 , += 是一个运算符,只运算一次,并带有强制转换的特点, 也就是说 s += 1 就是 s =
(short)(s + 1) 。因此程序没有问题编译通过,运行结果是2.(换成s = s+ 1就报错)
- 常量和变量的运算
public static void main(String[] args){byte b1=1;byte b2=2;byte b3=1 + 2;byte b4=b1 + b2; //这里等会会报错System.out.println(b3);System.out.println(b4);}
分析: b3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。
反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。
通俗地讲,就是没有完全把握的事不干
参考:B站黑马