目录:
1 定义一个1-5数组,将其数值随机打乱并输出
2 Java内存分配
3 方法重载
4 重载错误示例
5 重载正确示例
6 设计一个方法用于数组遍历
7 设计一个方法求数组的最大值,并将最大值返回
8 定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处(break写法)
9 定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处(return写法)
package com.itheima.demo1.arraytest;
import java.util.Random;
public class test12 {
public static void main(String[] args) {
//定义一个1-5数组
int[] arr = {1,2,3,4,5};int temp=0;
//生成0-5的随机数 包头不包尾
Random r = new Random();
for (int i = 0; i < arr.length ; i++) {
int randomIndex = r.nextInt(5);
//按照新生成的索引序列来交换数组的值
temp = arr[i];
arr[i]=arr[randomIndex];
arr[randomIndex]=temp;
}
//输入打乱后的数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
- 栈 : 方法运行时使用的内存,比如main方法运行,进入方法栈中执行
- 堆 : 存储对象或者数组,new来创建的,都存在堆内存
- 方法区 : 存储可以运行的class文件
- 本地方法栈 : JVM在使用操作系统功能的时候使用,和我们开发无关
- 寄存器 : 给cpu使用,和我们开发无关
package com.itheima.demo1.fangfa;
public class test3 {
public static void main(String[] args) {
// 1 直接调用 method(10,30,40);
int sum1 = method(10,30,40);
int sum2 = method(10,30,40);
int sum3 = method(10,30,40); //四个季度 一个季度三个月 求全年总和
int sum4 = method(10,30,40);
int sum = sum1+sum2+sum3+sum4; 2 赋值调用
System.out.println(sum);
3 输出调用 System.out.println(method(10,30,40,50));
}
public static int method(int c,int x,int q){
//求每个季度的营业额
int sum= c+x+q;
return sum;
}
}
利用函数比较多个长方形的面积
package com.itheima.demo1.fangfa;
public class test4 {
public static void main(String[] args) {
double s1 = method(10, 20);
double s2 = method(10, 20);
if (s1 > s2)
System.out.println("s1大");
else if (s1 == s2)
System.out.println("s1 s2 相等");
else
System.out.println("s2大");
}
public static double method(double chang, double kuan) {
double s = chang * kuan;
return s;
}
}
方法没有返回值(void):return表示结束方法 他后面的代码都是无效的
方法 有 返回值: return表示结束方法和返回结果
方法可以嵌套调用,但是不能嵌套定义
参数重载判断:
方法的重载: 同一个类中,方法名相同,参数不同的方法。与返回值无关
如何判断是否构成重载关系
- 1.必须在同一个类里
- 2.方法名必须相同
- 3.参数 个数 不同 或 参数顺序不同 参数类型不同
package com.itheima.demo1.fangfa;
public class test5 {
public static void main(String[] args) {
//方法的重载: 同一个类中,方法名相同,参数不同的方法。与返回值无关
//参数不同分为:个数不同,类型不同,顺序不同
//如何判断是否构成重载关系: 1.在同一个类里2.方法名相同3.参数个数不同4.参数类型不同5.参数顺序不同
}
public static int sum(int a,int b){
return a + b;
}
public static int sum(int a,int b,int c){
return a+b+c;
}
}
package com.itheima.demo1.fangfa;
public class test6 {
public static void main(String[] args) {
//使用方法重载,比较两个整数是否相同
//兼容全整数类型(byte,short,int,long)
//单双比等 逻条赋逗
boolean result = compare(10,20);
boolean result1 = compare(10,20);
boolean resul2t = compare(10,20);
boolean result3 = compare(10,20);
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}//错误写法 重载与返回值无关与参数有关 把void改成啥都不算重载
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// public static int compare(int x,int y){
// boolean result = x==y?true:false;//关系
// }
// public static byte compare(int x,int y){
// boolean result = x==y?true:false;
// }
// public static short compare(int x,int y){
// boolean result = x==y?true:false;
// }
// public static long compare(int x,int y){
// boolean result = x==y?true:false;
// }
}
--------------------------------------------------------------------
package com.itheima.demo1.fangfa;
public class test6 {
public static void main(String[] args) {
//使用方法重载,比较两个整数是否相同
//兼容全整数类型(byte,short,int,long)
//单双比等 逻条赋逗
compare((byte)10, (byte)20); //整数默认调用int型 可以通过强制转换调用
//还可以定义两个变量 //别的同理
// byte b1 = 10;
// byte b2 = 20;
// compare(b1,b2);
short s1 = 10;short s2 = 10; compare(s1,s2);
compare((long)10, (long)20);
compare(10, 20);
}
public static void compare(byte x, byte y) {
System.out.println(x == y);
}
public static void compare(int x, int y) {
System.out.println(x == y);
}
public static void compare(long x, long y) {
System.out.println(x == y);
}
public static void compare(short x, short y) {
System.out.println(x == y);
}
}
6 设计一个方法用于数组遍历
注意:int[ ] 和 int 不是一个东西 不相等 接收整型数组用 int [ ]
package com.itheima.demo1.fangfa;
public class test7 {
public static void main(String[] args){
int[] arr={1,2,3,4,5};
method(arr);
}
public static void method(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1)
System.out.print(arr[i] + "]");
else
System.out.print(arr[i]+ ",");
}
}
}
}
package com.itheima.demo1.fangfa;
public class test8 {
public static void main(String[] args) {
//设计一个方法求数组的最大值,并将最大值返回
int[] arr = {1, 2, 3, 4, 5};
int zui = Max(arr);
System.out.println(zui);
}
public static int Max(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return (max);
}
}
8 定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处(break写法)
package com.itheima.demo1.fangfa;
import java.util.Scanner;
public class test9 {
public static void main(String[] args) {
//定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处
int[] arr = {1, 3, 4, 5, 6};
int result = method(arr);
if (result == 0)
System.out.println("不存在");
else
System.out.println("存在");
}
public static int method(int[] arr) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int x = sc.nextInt();
int i;
int s;
for (i = 0; i < arr.length; i++) {
if (x == arr[i]) {
break;
}
}
if (i == arr.length)
s = 0;
else
s = 1;
return s;
}
}
9 定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处(return写法)
package com.itheima.demo1.fangfa;
public class test10 {
public static void main(String[] args){
int[] arr = {1,2,4,5,6};
boolean falg = method(arr,1);
System.out.println(falg);
}
public static boolean method(int[] arr,int number){
for (int i = 0; i < arr.length; i++) {
if(number == arr[i])
return true;
}
return false;
}
}
//return和break的区别:return和循环没关系 程序遇到return就会结束 循环也会停止
//break不一样,只是跳出循环,程序仍然进行
总结:
return和break的区别:
1 return和循环没关系 程序遇到return就会结束 循环也会停止
2 break不一样,只是跳出循环,程序仍然进行
返回目录