java基础---4. 方法

1. 定义和调用一个方法

  • 定义一个方法的格式非常多,这里先学习比较基础的一种定义方式
public static void 方法名称() {
    //方法体
}

方法名称的命名规则和变量一样,使用小驼峰。

  • 调用方法
方法名称();

举例

public class Demo09Method {
	public static void main(String[] args) {
		//调用方法
		farmer();
		seller();
		cook();
		me();
	}
	//定义方法
	//在“类名后的大括以内”且在“main函数的大括以外”这个层级来定义方法
	//我
	public static void me() {
		System.out.println("吃");
	}
	//厨子
	public static void cook() {
		System.out.println("洗菜");
		System.out.println("切菜");
		System.out.println("炒菜");
		System.out.println("装盘");
	}
	//商贩
	public static void seller() {
		System.out.println("运输到农贸市场");
		System.out.println("抬高价格");
		System.out.println("吆喝");
		System.out.println("卖给厨子");
	}
	//农民伯伯
	public static void farmer() {
		System.out.println("播种");
		System.out.println("浇水");
		System.out.println("施肥");
		System.out.println("除虫");
		System.out.println("收割");
		System.out.println("贩卖给商贩");
	}
}
//注意:
//1. 方法定义的先后顺序无所谓
//2. 方法的定义不可产生嵌套包含关系 比如不可以在cook里面定义me

2. JDK的jshell

jshell类似于python中的idle,轻量级,在cmd中输入jshell即可进行jshell脚本,在jshell中输入/exit即可推出jshell而重新进入cmd

C:\Users\Ruanc>jshell
|  欢迎使用 JShell -- 版本 9.0.4
|  要大致了解该版本, 请键入: /help intro

jshell> System.out.println("Hello,World!")
Hello,World!

jshell> int a = 10
a ==> 10

jshell> int b = 20;
b ==> 20

jshell> int result = a * b
result ==> 200

jshell> System.out.println("结果是:"+result)
结果是:200

jshell> /exit
|  再见

C:\Users\Ruanc>

3. 补充内容

  • 第一点
/*
对于byte/short/char三种类型来,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个强制类型转换(byte)(short)(char)

1. 如果没有超过左侧的范围,编译器补上强制类型转换 
2. 如果右侧超过了左侧的范围,那么直接编译器报错
*/

public class Demo10Notice {
	public static void main(String[] args) {
		//byte类型
		//30是int,但是没有超过byte范围,所以不报错(原因:隐含了一个强制类型转换)
		byte num1 = 30;//等效于byte num1 = (byte)30;
		System.out.println(num1);//30
		
		//130是int,右侧超过byte的范围
		//byte num2 = 130;//报错
		
		//char类型
		//65是int,但是没有超过char范围,所以不报错(原因:隐含了一个强制类型转换)
		char ch = 65;//等效于char ch = (char)65;
		System.out.println(ch);//A
	}
}
  • 第二点
/*
在给变量进行赋值的时候,若右侧的表达式中全是常量,没有任何变量,那么编辑器javac将会直接将若干个常量表达式计算得到结果。
这称为"编辑器的常量优化"
但是注意:一旦表达式中有变量参与,那么就不能进行这种优化了
*/
public class Demo11Notice {
	public static void main(String[] args) {
		
		short a = 5;
		short b = 8;
		//short+short--->int+int--->result应该是int类型
		//short result = a + b;//写法错误
		//编辑器的常量优化,虽然5和8默认是int,但是隐含了强制类型转换
		short result = 5 + 8;
		System.out.println(result);//13
		
		//short result2 = 5 + a + 8;//报错 无法进行常量优化 result2应该定义为int类型
	}
}
posted @ 2020-01-11 15:35  deer_cen  阅读(133)  评论(0编辑  收藏  举报