方法基本概念
方法是程序中最小的执行单元(类似于C++中的函数)
方法的定义:
方法的调用
public class test {
public static void main(String[] args) {
playGame();//在main方法中调用playGame方法
playGame();
}
public static void playGame(){//定义方法,注意要定义在main方法的外面,类的里面
System.out.println("开始游戏");
}
}
练习1:定义方法计算两数之和
public class test {
public static void main(String[] args) {
calc();//在main方法中调用playGame方法
}
public static void calc(){//定义方法
int num1=2;
int num2=3;
int Result=num1 +num2;
System.out.println(Result);
}
}
带参数的方法和定义和调用
练习2:定义方法求长方形的周长
练习3:定义方法求圆的面积
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double r=sc.nextInt();
square(r);//在main方法中调用playGame方法
}
public static void square(double r){//定义方法
double Result=3.14*Math.pow(r,2);
System.out.println(Result);
}
}
带返回值方法的定义和调用
练习4:比较大小
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个长方形的长和宽");
double len1=sc.nextInt();
double wide1=sc.nextInt();
System.out.println("请输入第二个长方形的长和宽");
double len2=sc.nextInt();
double wide2=sc.nextInt();
double r1=square(len1,wide1);//在main方法中调用playGame方法
double r2=square(len2,wide2);
compare(r1,r2);
}
public static Double square(double len,double wide){//定义方法
double Result=len*wide;
return Result;
}
public static void compare(double R1,double R2){
if(R1==R2){
System.out.println("两个长方形面积相等");
}
else if(R1>R2){
System.out.println("长方形1面积大于长方形2");
}
else{
System.out.println("长方形1面积小于长方形2");
}
}
}
方法的重载
1、返回值类型不同的方法不构成重载关系
3、不同类里面的方法不构成重载关系
练习:方法重载的思想,比较两数大小
public class test {
public static void main(String[] args) {
byte b1=10;
byte b2=20;
compare(b1,b2);
}
public static void compare(byte R1,byte R2){
System.out.println("byte");
System.out.println(R1==R2);
}
public static void compare(short R1,short R2){
System.out.println("short");
System.out.println(R1==R2);
}
public static void compare(int R1,int R2){
System.out.println("int");
System.out.println(R1==R2);
}
public static void compare(long R1,long R2){
System.out.println("long");
System.out.println(R1==R2);
}
}
练习:数组遍历
public class test {
public static void main(String[] args) {
int[] a1={11,22,33,44,55};
bianli(a1);
}
public static void bianli(int[]a){
System.out.print("[");
for (int i = 0; i < a.length; i++) {
if(i==a.length-1){
System.out.print(a[i]);
}else{
System.out.print(a[i]+",");
}
}
System.out.println("]");
}
}
练习:数组最大值
public class test {
public static void main(String[] args) {
int[] a1 = {11, 22, 33, 44, 55};
int result=arrmax(a1);
System.out.println(result);
}
public static int arrmax(int[] a) {
int max=a[0];
for (int i = 1; i < a.length; i++) {
if(max<a[i]){
max=a[i];
}
}
return max;
}
}
练习:判断数组中的某一个元素是否存在
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要查找的值");
int num=sc.nextInt();
int[] a1 = {11, 22, 33, 44, 55};
String result=arrexit(a1,num);
System.out.println(result);
}
public static String arrexit(int[] a,int num1) {
for (int i = 0; i < a.length; i++) {
if(a[i]==num1){
return "存在";
}
}
return "不存在";
}
}
练习:复制元素
public class test {
public static void main(String[] args) {
int[] a = {11, 22, 33, 44, 55};
int[] copy=copyOfRange(a,1,3);
for(int i=0;i<copy.length;i++){
if(i==copy.length-1)
System.out.print(copy[i]);
else{
System.out.print(copy[i]+",");
}
}
}
public static int[] copyOfRange(int[] arr,int from,int to) {//返回类型为数组,要写int[]
int[] a2=new int[to-from];//动态数组元素个数为to-from
for(int i=from,k=0;i<to;i++,k++){
a2[k]=arr[i];
}
return a2;
}
}
方法内存以及基本数据类型与引用数据类型
只要是new出来的都是引用数据类型