上一篇博客:运算符


目录

  • 方法入门
  • JShell脚本工具
  • 拓展知识点

开始


一、方法入门
  1. 方法的概述

我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且 重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。


方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
放在C\C++面向过程程序设计中就是称为函数,Java是完全面向对象的,所以称为方法。


当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象

  1. 方法的定义

定义格式:

修饰符 返回值类型 方法名 (参数列表){
		代码;
		return ;
		
}

/*
修饰符:目前固定写法public static
返回值类型:目前固定写法void
方法名:满足小驼峰命名法
参数列表:目前无参数,后面会学习有参数的
return:方法结束返回值类型为void,方法大括号内的return可以不写
*/

public static void methodName() {    
	System.out.println("这是一个方法");    
}
  1. 方法的调用

方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法。在主方法中,直接写要调用的方法名字就可以调用了。

public static void main(String[] args) {     
	//调用定义的方法method     
	method(); 
} 
	//定义方法,被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);
	}
}

Java学习篇6_方法入门、JShell脚本工具、拓展知识点_java

  1. 注意事项
  • 方法必须定义在类中方法外
  • 方法中不能在定义方法(函数中不能定义函数)

二、JShell脚本工具

JShell脚本工具是JDK9的新特性

什么时候会用到 JShell 工具呢,当我们编写的代码非常少的时候,而又不愿意编写类,main方法,也不愿意去编译和运
行,这个时候可以使用JShell工具。

启动JShell工具,在DOS命令行直接输入JShell命令。
接下来可以编写Java代码,无需写类和方法,直接写方法中的代码即可,同时无需编译和运行,直接回车即可

Java学习篇6_方法入门、JShell脚本工具、拓展知识点_运算符_02

三、拓展知识点

  1. += 符号的扩展
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);
 }

Java学习篇6_方法入门、JShell脚本工具、拓展知识点_java_03

换成 s = s +1

Java学习篇6_方法入门、JShell脚本工具、拓展知识点_赋值_04

分析:

s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围大的类型赋值到取值范围小的类型。

但是, s=s+1进行两次运算 , += 是一个运算符,只运算一次,并带有强制转换的特点, 也就是说 s += 1 就是 s =
(short)(s + 1) 。

因此程序没有问题编译通过,运行结果是2.(换成s = s+ 1就报错)

  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); 
}
  1. 分析: b3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。
  2. 反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。
  3. 通俗地讲,就是没有完全把握的事不干

参考:B站黑马