JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

方法和+=符号的运算

wys521 2024-11-17 16:56:39 精选教程 31 ℃ 0 评论

一:方法

概念

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

方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。

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

定义

格式

修饰符 返回值类型 方法名 (参数列表){

代码...

定义格式解释:

修饰符:暂时固定写法public static。

返回值类型:暂时固定写法void,其他返回值类型在后面说。

方法名:为我们定义的方法起名,满足标识符的规范,用来调用方法。

参数列表:暂时无参数,带有参数的方法在后面说。

例如

public static void methodName() {

System.out.println("方法");

}

调用

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

public static void main(String[] args) {

//调用定义的方法method

method();

}

//定义方法,被main方法调用

public static void method() {

System.out.println("定义的方法,需要被main调用运行");

}

代码示例

定义一个方法用三元运算符求2个数的最大值。

public static void main(String[] args) {
//直接调用
Max1();
Max2();
}
// 3个数的最大值
public static void Max1() {
int a = 250;
int b = 120;
int c = 60;
// 先找出2个数中较大的数
int m = a > b ? a: b;
// 再让较大的数和第三个数比较
int ma = m > c ? m : c;
System.out.println("最大的数: " + ma);
}
// 2个数的最大值
public static void Max2() {
int a = 50;
int b = 30;
int m = a > b ? a: b;
System.out.println("较大的数: " + m);
}

需要注意的

1.方法必须定义在一个类中方法外

2.方法不能定义在另一个方法的里面

public class Demo {

public static void main(String[] args){

}

//正确,类中,main方法外面可以定义方法

public static void method(){}

}

public class Demo02 {

public static void main(String[] args){

//错误,方法不能定义在另一个方法内部

public static void method(){}

}

}

二:学习+=符号

程序是否有问题

public static void main(String[] args){

short s = 3;

s+=3;

System.out.println(s);

}

s += 3 逻辑上看作是 s = s + 3 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围大的类型赋值到取值范围小的类型。但是, s=s+3进行两次运算,+= 是一个运算符,只运算一次,并带有强制转换的特点,也就是说s += 3就是s = (short)(s + 3),因此程序没有问题编译通过,运行结果是6.

常量和变量运算

程序是否有问题

public static void main(String[] args){

byte a1=1;

byte a2=2;

byte a3=1 + 2;

byte a4=a1 + a2;

System.out.println(a3);

System.out.println(a4);

}

分析: a3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没有超过byte类型的取值范围,可以赋值给变量a3,因此a3=1 + 2是正确的。

反之,a4 = a1 + a2,a1和a2是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定a1+a2的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表