它是一种用于执行特定任务或操作的代码块,代表一个功能, 它可以接收数据进行处理, 并返回一个处理后的结果。
修饰符 返回值类型 方法名{形参列表}{
方法体代码{需要执行的功能代码}
return 返回值;
}
public static int max(int a, int b){
int max = a > b ? a : b;
return max;
}
package com.pdwei.method;
public class MethodDemo1 {
public static void main(String[] args) {
// 目标: 掌握方法定义和调用。
int sum = getSum(10, 20);
System.out.println("和是: " + sum);
System.out.println("-------------------");
int sum2 = getSum(100, 200);
System.out.println("和是: " + sum2);
printHelloWorld();
System.out.println("-------------------");
System.out.println("验证码是: " + getVerifyCode(4));
System.out.println("验证码是: " + getVerifyCode(5));
}
// 定义一个方法, 求任意两个整数的和并返回。
public static int getSum(int a, int b) {
int sum = a + b;
return sum;
}
// 需求: 打印3行 HelloWorld, 不需要参数,也不需要返回值
// 注意: 如果方法没有返回的结果,返回值类型必须声明为 void。
// 无参数,无返回值类型
public static void printHelloWorld() {
System.out.println("Hello World!");
System.out.println("Hello World!");
System.out.println("Hello World!");
}
// 需求3: 获取一个指定位数的验证码返回.
// 掌握方法的定义格式
// 需要接收数据,需要接收位数 int len
// 需要返回数据,需要返回验证码 String
// 有参数有返回值的方法
public static String getVerifyCode(int len) {
String code = "";
for (int i = 0; i < len; i++) {
int num = (int) (Math.random() * 10);
code += num;
}
return code;
}
}
package com.pdwei.method;
public class MethodDemo3 {
public static void main(String[] args) {
// 目标: 掌握在无返回值的方法中单独使用 return; 提前结束方法。
divide(10, 0);
}
// 设计一个除法的功能
public static int divide(int a, int b) {
if (b == 0) {
System.out.println("除数不能为0");
return -1; // 提前结束方法. 卫语言风格!!
}
return a / b;
}
}
byte → \to → short → \to → int → \to → long → \to → float → \to → double
char → \to → int
a 00001100 (8位)
a → \to → b
b 00000000 00000000 00000000 00001100 (32位)
int a = 20;
byte b = (byte) a;
System.out.println(b); // 20
a 00000000 00000000 00000000 00010100
a → \to → b
b 00010100
int i = 1500;
byte j = (byte) i;
System.out.println(j); // -36
i 00000000 00000000 00000101 11011100 (32位)
j 11011100 (8位)
package com.pdwei.type;
public class TypeDemo1 {
public static void main(String[] args) {
// 目标: 人数自动类型转换,强制类型转换。
byte a = 12;
print(a); // 自动类型转换
print2(a); // 自动类型转换
System.out.println("--------------------------");
int i = 20;
// print3(i); // 类型范围大的变量不能直接赋值给类型范围小的变量, 会报错的!!
// 强制类型转换, 类型 变量2 = (类型) 变量1
byte j = (byte) i;
print3(j);
System.out.println("--------------------------");
int m = 1500;
byte n = (byte) m;
System.out.println(m);
System.out.println(n); // 出现数据溢出!!
System.out.println("--------------------------");
double k = 12.56;
int l = (int) k;
System.out.println(k);
System.out.println(l); // 12.56 -> 12
}
public static void print(int a) {
System.out.println(a);
}
public static void print2(double a) {
System.out.println(a);
}
public static void print3(byte a) {
System.out.println(a);
}
}
byte、short、char → \to → int → \to → long → \to → float → \to → double
package com.pdwei.type;
public class TypeDemo2 {
public static void main(String[] args) {
// 目标: 理解表达式的自动类型提升
int result = calc2((byte)110, (byte)120);
System.out.println(result);
System.out.println("--------------------------");
int result2 = calc3((byte)110, (byte)120);
System.out.println(result2);
}
// 需求: 接收各种类型的数据运算。
public static double calc(int a, int b, double c, char r) {
// 表达式的最终结果类型是由最高类型决定的
return a + b + c + r;
}
public static int calc2(byte a, byte b){
// byte short char 运算时会直接提升成 int 运算。
return a + b;
}
public static byte calc3(byte a, byte b) {
byte c = (byte) (a + b);
return c;
}
}
System.out.println("Hello World!")
通过Java提供的 Scanner程序来实现
package com.pdwei.scanner;
// 1. 导包 告诉我们自己的程序,去JDK哪里找Scanner程序用
import java.util.Scanner;
public class ScannerDemo1 {
public static void main(String[] args) {
printUserInfo();
}
// 需求: 我是一个零基础小白,请帮我写一个程序,可以让用户键盘输入用户名和年龄,然后打印出来。
public static void printUserInfo() {
// 2. 创建一个Scanner对象, 用来接收用户输入的数据
Scanner sc = new Scanner(System.in);
// 3.获取用户输入的数据
System.out.println("请输入用户名:");
// 让程序在这一行暂停, 等待用户输入一个字符串名称, 直到按了回车键之后, 把名字交给变量name记住,再往下走
String name = sc.next();
System.out.println("您叫: " + name);
System.out.println("请输入年龄:");
// 让程序在这一行暂停, 等待用户输入一个整数, 直到按了回车键之后, 把名字交给变量age记住,再往下走
int age = sc.nextInt();
System.out.println("您今年: " + age + "岁");
}
}
Mark:++、- -只能操作变量,不能操作字面量
++、–如果在变量前后单独使用时没有区别的
++、–如果不是单独使用(如在表达式中、或同时又其他操作),放在变量前后会存在明显区别
- 在变量的前面,先对变量+1、-1,再拿变量的值运算。
- 在变量的后面,先拿变量的值运算,再对变量的值+1、-1
package com.pdwei.operator;
public class OperatorDemo2 {
public static void main(String[] args) {
// 目标: 理解自增自减运算符
print(10);
System.out.println("================");
print2(10);
System.out.println("================");
print3();
}
// 设计一个方法,接收一个整数。
public static void print(int a) {
// 输出a的值
System.out.println(a);
// a自增1
a++;
// 输出a的值
System.out.println(a);
++a;
System.out.println(a);
// a自减1
a--;
// 输出a的值
System.out.println(a);
}
// 设计一个方法,理解自增和自减放在变量前后的区别
public static void print2(int a) {
int b = a++; // a++ 先赋值再自增
System.out.println(a); // 11
System.out.println(b); // 10
int c = ++a; // ++a 先自增再赋值
System.out.println(a); // 12
System.out.println(c); // 12
int d = a--;
System.out.println(a);
System.out.println(d);
int e = --a;
System.out.println(a);
System.out.println(e);
int f = a;
System.out.println(a);
System.out.println(f);
}
public static void print3() {
int c = 10;
int d = 5;
int rs3 = c++ + ++c - --d - ++d + 1 + c--; // 10 + 12 - 4 - 5 + 1 + 12 = 26
System.out.println(rs3);
System.out.println(c);
System.out.println(d);
}
}
int a = 10; // 先看"="右边,把数据10赋值给左边的变量a存储。
Mark: 在java中判断是否相等一定是 “==”, 千万不要把"==“误写成”="。
package com.pdwei.operator;
public class OperatorDemo5 {
public static void main(String[] args) {
// 目标: 三元运算符
print(10, 40);
print(59);
System.out.println(getMax(10, 40, 60));
}
public static void print(int a, int b) {
int c = a > b ? a : b;
System.out.println("较大值: " + c);
}
// 需求: 判断成绩是否通过或者挂科
public static void print(int score) {
String result = score >= 60 ? "通过" : "挂科";
System.out.println(result);
}
// 需求: 求三个整数的较大值返回
public static int getMax(int a, int b, int c) {
// 三元运算符的嵌套
int max2 = a > b ? a > c ? a : c : b > c ? b : c;
int max = a > b ? a : b;
max = max > c ? max : c;
return max;
}
}
符号 | 叫法 | 例子 | 运算逻辑 |
---|---|---|---|
& | 逻辑与 | 2>1 & 3>2 | ==多个条件必须都是true,结果才是true;==有一个是false, 结果就是false |
! | 逻辑或 | 2>1 | 3<5 | 多个条件中只要有一个是true, 结果就是ture; |
! | 逻辑非 | !(2>1) | 就是取反: 你真我假,你假我真。!true=false、!false=true |
^ | 逻辑异或 | 2>1 ^ 3>1 | 前后条件的结果相同,就直接返回false, 前后条件的结果不同, 才返回true |
&& | 短路与 | 2>10 && 3 > 2 | 判断结果与"&"一样,过程不同: 左边为false, 右边则不执行 |
|| | 短路或 | 2>1|| 3<5 | 判断结果与"|"一样,过程不同,左边为 true,右边则不执行 |
package com.pdwei.operator;
public class OperatorDemo6 {
public static void main(String[] args) {
// 目标: 掌握逻辑运算符的使用
System.out.println(isMatch(180, 70, '女'));
System.out.println(isMatch(180, 70, '男'));
System.out.println(isMatch2(180, 10000));
System.out.println(isMatch2(160, 1000000));
System.out.println(isMatch2(160, 100));
isMatch3(true);
System.out.println("================");
isMatch4(true);
System.out.println("================");
test();
}
// 需求: 判断某个人的条件是否满足择偶要求,如果满足,返回true,否则返回false
// 条件: 身高高于170,体重在60~80之间,且性别为女。
// & 必须前后条件都是 true 结果才是true,只要有一个为false,结果就是false
public static boolean isMatch(int height, int weight, char sex) {
return height > 170 & weight >= 60 & weight <= 80 & sex == '女';
}
// 需求: 找一个男朋友,要求是要么身高高于180,要么收入高于30w。
// | 只要有一个为true,结果就是true,必须都是false,结果就是false
public static boolean isMatch2(int height, int income) {
return height >= 180 | income > 300000;
}
// ! 非,你真我假,你假我真
public static void isMatch3(boolean flag) {
System.out.println(!flag);
}
// ^ 异或, 相同条件结果:false,条件不同结果:true
public static void isMatch4(boolean flag) {
System.out.println(flag ^ true);
System.out.println(flag ^ false);
System.out.println(true ^ true);
System.out.println(false ^ false);
System.out.println(true ^ false);
System.out.println(false ^ true);
}
// 判断 && || 与 & | 的区别
public static void test() {
int a = 111;
int b = 2;
// System.out.println(a > 1000 && ++b > 1); // false && 发现左边为false,右边直接不执行
System.out.println(a > 1000 & ++b > 1); // false & 发现左边为false,右边也执行了
System.out.println(b);
int i = 10;
int j = 20;
System.out.println(i++ > 6 || ++j > 1); // true || 发现左边条件为true,右边直接不执行
System.out.println(i++ > 6 | ++j > 1); // true | 发现左边条件为true, 右边也执行了
System.out.println(i);
System.out.println(j);
}
}
package com.pdwei.demo;
import java.util.Scanner;
public class AllTest {
public static void main(String[] args) {
// 目标: 完成健康计算器
Scanner sc = new Scanner(System.in);
// 1. 先让用户输入自己的个人信息:身高、体重、性别、年龄
System.out.println("请输入您的身高: ");
double height = sc.nextDouble();
System.out.println("请输入您的体重: ");
double weight = sc.nextDouble();
System.out.println("请输入您的性别: ");
String sex = sc.next();
System.out.println("请输入您的年龄: ");
int age = sc.nextInt();
System.out.println("您的BMI值是: " + getBMI(height, weight));
// 判断用户的bmi 值的情况......
double bmr = getBMR(height, weight, age, sex);
System.out.println("您的基础代谢率是: " + bmr);
// 判断用户的bmr值的情况......
}
// 2. 根据用户的个人信息,计算出BMI值 (把数据交给一个独立的方法来计算并返回这个结果)
public static double getBMI(double height, double weight) {
double bmi = weight / (height * height);
return bmi;
}
// 3. 根据用户的个人信息,计算出BMR值 (把数据交给一个独立的方法来计算并返回这个结果)
public static double getBMR(double height, double weight, int age, String sex) {
double bmr = 0;
if ("男".equals(sex)) {
bmr = 88.362 + (13.397 * weight) + (4.799 * height) - (5.677 * age);
} else {
bmr = 447.593 + (9.247 * weight) + (3.098 * height) - (4.330 * age);
}
return bmr;
}
}
D a y 2 C o m p e t e ! ! ! \mathcal{Day~2\quad Compete!!!} Day 2Compete!!!
"那就祝我们 被鲜花簇拥 看大海漫漫 热烈且自由 赤诚又勇敢。” — —德卡先生的信箱