1.什么是方法
我们也可以自己去定义一些其他的方法
2.方法的格式
2.1方法格式
2.2方法的定义
2.2.1总体格式:
2.2.2最简单的方法定义与调用
定义:
调用
示例代码:
package method;
public class test1 {
public static void main(String[] args) {
//最简单的方法定义和调用的格式
phonenumber();//调用方法
}
public static void phonenumber(){//定义
System.out.println("1");
System.out.println("0");
System.out.println("0");
System.out.println("8");
System.out.println("6");
}
}
package method;
public class test3 {
public static void main(String[] args) {
//需求:在方法里定义两个变量并求和打印
getSum();
}
public static void getSum(){
int num1=10;
int num2=20;
int result=num1+num2;
System.out.println(result);
}
}
2.2.3带参数的方法定义
示例代码:
package method;
public class test5 {
public static void main(String[] args) {
getSum(12,15);//27
}
public static void getSum(int num1, int num2) {
int result = num1 + num2;
System.out.println(result);
}
}
形参和实参:
练习1:人肉计算器1
计算周长:
代码:
package method;
import java.util.Scanner;
public class test6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入长和宽");
longthSum(sc.nextInt(), sc.nextInt());//形参里面需要什么填什么
}
public static void longthSum(int longth, int weith) {
System.out.println(2 * (longth + weith));
}
}
计算圆的面积:
package method;
import java.util.Scanner;
public class test7 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
areath(sc.nextDouble());
}
public static void areath(double r){
System.out.println(3.14*r*r);
}
}
2.2.4带返回值的方法的定义
原因:
说人话:后续重复使用这个模板,就用带返回值的
格式:
调用方式:
示例代码:
package method;
//需求:计算一季度营业额
public class test8 {
//带返回值的方法定义和调用
public static void main(String[] args) {
//直接调用
getSum(10, 20, 30);
//赋值调用
int sum = getSum(10, 20, 30);
System.out.println(sum);
//输出调用
System.out.println(getSum(10,23,12));
}
public static int getSum(int num1, int num2, int num3) {
int result = num1 + num2 + num3;
return result;//返回到调用处
}
}
练习:比较两个长方形周长大小
代码:
package method;
import java.util.Scanner;
public class test9 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个长方形");
int sum1 = getSum(sc.nextInt(), sc.nextInt());
System.out.println("输入第二个长方形");
int sum2 = getSum(sc.nextInt(), sc.nextInt());
if (sum1 > sum2) {
System.out.println("bigger");
} else {
System.out.println("shorter");
}
}
public static int getSum(int len, int weith) {
int sum = 2 * (len + weith);
return sum;
}
}
2.2.5 小结
2.3 方法的重载
简单区分一下:
练习:使用重载思想设计比较两个整数是否相同
要求:兼容全整数类型(byte,short,int,long)
代码:
package method;
public class test10 {
//练习:使用重载思想设计比较两个整数是否相同
//
//要求:兼容全整数类型(byte,short,int,long)
public static void main(String[] args) {
//调用
compare(10, 10);
byte b1 = 10;
byte b2 = 10;
compare(b1, b2);
}
public static void compare(int i1, int i2) {
System.out.println(i1 == i2);
}
public static void compare(short s1, short s2) {
System.out.println(s1 == s2);
}
public static void compare(byte b1, byte b2) {
System.out.println(b1 == b2);
}
public static void compare(long l1, long l2) {
System.out.println(l1 == l2);
}
}
2.4 四大练习
2.4.1 数组遍历
代码:
package method;
public class test11 {
public static void main(String[] args) {
int[] arr1 = {11, 22, 33, 44, 55};
intArr(arr1);
//System.out.println("abc");//打印abc并换行
//System.out.print("abc");//打印abc,不换行
//System.out.println();//不打印任何数据单纯换行
//System.out.println(arr1.length);数组长度为5
}
public static void intArr(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
System.out.print(arr[i]);//下标为4时,只打印数字
}else{
System.out.print(arr[i]+",");//下标不是4时,打印数字加逗号
}
}
System.out.print("]");
}
}
2.4.2 数组最大值
package method;
public class test12 {
public static void main(String[] args) {
int[] arr = {1, 2, 4, 64, 12, 456, 75, 21, 24, 5, 65, 5456, 4, 5, 5, 55, 2, 26, 54, 51, 2, 512, 2415, 2};
int max = getMax(arr);//选中方法名 ctrl+alt+v 快捷键生成数据类型
System.out.println(max);
}
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
}
2.4.3 判断是否存在
代码:
package method;
//判断数组中是否存在指定数据
public class test13 {
public static void main(String[] args) {
int[]arr={12,21,4,5,23,12,4,45};
boolean b = ifCantain(5, arr);
System.out.println(b);
}
public static boolean ifCantain(int num,int []arr){
for (int i = 0; i < arr.length; i++) {
if(arr[i]==num){
return true;
}
}
return false;//放在遍历外,全部比较后没有再输出false
}
}
2.4.4 拷贝(复制数组)
思路:
代码:
package method;
public class test14 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] result = copyOfRange(arr, 2, 6);//定义新数组
for (int i = 0; i < result.length; i++) {//遍历[]result
System.out.print(result[i] + " ");
}
}
public static int[] copyOfRange(int[] arr, int from, int to) {
//1.定义数组
int[] arr1 = new int[to - from];//数组的动态初始化
//2.把原数组中的from到to拷贝到新数组中
int index = 0;//伪造一个索引
for (int i = from; i < to; i++) {
arr1[index] = arr[i];
index++;
}
return arr1;
}
}
2.5 方法的内存(偏理论)
2.5.1方法调用的基本内存原理
2.5.2方法传递基本数据类型的内存原理
2.5.3方法传递引用数据类型的内存原理
版权声明:本文为chijijixiaozhang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。