网站首页 > 精选教程 正文
一:方法
概念
我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和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类型,因此编译失败。
- 上一篇: Java运算符之比较运算符
- 下一篇: 项目中的参数限制、非空、以及集合中的验证,你真的会做吗
猜你喜欢
- 2024-11-17 项目中的参数限制、非空、以及集合中的验证,你真的会做吗
- 2024-11-17 Java运算符之比较运算符
- 2024-11-17 《Java开发手册灵魂13问》正式上线,带你剖析阿里巴巴的开发细节
- 2024-11-17 03_Java_基础_表达式
- 2024-11-17 如何在 Python 中使用三元运算符?
- 2024-11-17 三目运算符的空指针问题,终于被阿里巴巴开发手册收录了
- 2024-11-17 Elasticsearch:painless script语法编程和入门实战
- 2024-11-17 golang三元表达式
- 2024-11-17 Java数组案例
- 2024-11-17 重大线上事故!三元表达式引发的空指针问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)