目录
- 二维数组
- 一维数组回顾
- 二维数组定义与创建
- 二维数组的遍历
- 二维数组堆栈图
- 特殊的char数组
- 方法
- main方法认识
- 自定义方法
- 调用同类中方法
- 调用不同类中方法
- 方法的参数
- 方法的返回值
- 方法签名
- 方法重载
二维数组
一维数组回顾
二维数组定义与创建
二维数组的遍历
/**
* 二维数组:
* 一维数组中的元素 也为一个数组
* 数组四大要素:
* 数组名:
* 数组长度: length属性获取
* 数组索引: 从0开始
* 数组元素:
*/
public class _01_EWArray {
public static void main(String[] args) {
//动态创建
//数据类型[][] 数组名字 = new 数据类型[外层数组长度][元素数组长度];
int[][] arr = new int[2][3];
//赋值
arr[0] = new int [] {1,2,3};
arr[1] = new int [] {4,5,6};
System.out.println(arr[1][2]);//6
System.out.println(arr.length);//2
//静态创建
int [] [] arr1 = {{1,4,7},{2,5,8},{3,6,9},{4,5,6}};
System.out.println(arr1.length);//4
//二维数组的遍历
for(int i=0;i<arr1.length;i++){
//System.out.println(arr1[i]);//地址值
//temp 代表每一个元素数组 arr1[i] 代表temp是arr1里的第(i+1)个数组
int[] temp = arr1[i];
//遍历元素数组
for(int j = 0;j<temp.length;j++){
System.out.println(temp[j]);
}
}
for (int[] e : arr1) {
//System.out.println(e);//地址值
for (int i : e) {
System.out.println(i);
}
}
}
}
二维数组堆栈图
特殊的char数组
//特殊的数组 char数组
int[] iarr = {1,2,3};
System.out.println(iarr);//[I@15db9742
char[] carr = {'a','b','c'};
System.out.println(carr);//abc
方法
定义 : 完成某种功能的代码块,可以重复使用,每次使用互不影响
main方法认识
/**
* main方法: 程序入口
* public:公共的 修饰符 如果有该修饰符 任何人都可以访问
* static:静态的 jvm优先加载
* void:空 返回值类型
* main:方法名称
* (): 存放形式参数
* String[] args: 形式参数 (只具有类型和名称)
* {}:结构体 书写功能语句
*/
public class _02_MethodDemo {
public static void main(String[] a) {
System.out.println(1111);
}
}
自定义方法
/**
* 自定义方法:
* public: 非必须
* static:非必须
* void:必须的
* 方法名字:必须
* ():必须的
* 形式参数:非必须的
* {}:必须的
* 方法 定义在类结构中
*/
public class _02_MethodDemo {
public static void main(String[] a) {
System.out.println(1111);
}
//自定义方法
void test(){}
}
调用同类中方法
/**
* 方法的调用:
* 1.同一个类中
* 直接 方法名();
* 静态上下文不能引用非静态区域的变量或者方法
*/
public class _03_MethodUse {
//main方法是程序的入口
public static void main(String[] args) {
//调用其他方法
play();
}
//定义的玩耍方法
static void play(){
System.out.println("老子再也不打游戏了");
}
void test(){
show();
}
void show(){
System.out.println("你真的是天秀");
}
}
调用不同类中方法
public class Other {
//定义一个other方法
static void other(){
System.out.println("这是另外一个类中的方法");
}
}
public class Test {
//定义一个other方法
static void other(){
System.out.println("这是test类中的方法");
}
}
/**
* 方法的调用:
* 1.同一个类中
* 直接 方法名();
* 静态上下文不能引用非静态区域的变量或者方法
* 2.不同类中
* 有static
* 类名.方法名();
* 没有static:
* 创建对象 对象名.方法名();
*/
public class _03_MethodUse {
//main方法是程序的入口
public static void main(String[] args) {
//调用其他方法
//play();
//重复调用
//play();
//调用Other类中的方法
Other.other();
}
//定义的玩耍方法
static void play(){
System.out.println("老子再也不打游戏了");
}
void test(){
show();
}
void show(){
System.out.println("你真的是天秀");
}
}
方法的参数
/**
* 形式参数:具有类型和名称 没有实际的值
* 方法调用时,传递的参数称为实际参数,类型和形式参数一致
*/
public class _04_MethodParam {
public static void main(String[] args) {
getSum(5,6);// 5 6 称为实际参数
getSum(1,9);
//getSum("aa",7887);//类型不匹配
getSum('A',25);
int x = 25,y=65;
getSum(x, y);
}
//定义一个方法 用来计算两个数的和
static void getSum(int a,int b){// a b 称为形式参数
//System.out.println(6+9);
int c = a+b;
System.out.println(c);
}
}
方法的返回值
/**
* 方法的返回值:
* 如果方法没有返回值 使用void
* 如果有返回值 需要在方法中使用return 并将void改为需要返回的类型
*/
public class _05_MethodReturn {
public static void main(String[] args) {
//调用方法
int x = getMax(60, 90);
System.out.println(x);
}
// 定义一个方法 用来找出两个整数中最大的整数
static int getMax(int a,int b){
int max = a>b?a:b;
//System.out.println(max);
//返回max
return max;
//System.out.println("呵呵");//return 具有终止当前方法的作用
}
}
/**
* 方法的返回值:
* 如果涉及到判断 或者比较的情况 需要考虑条件不成立的时候 方法是否还具有返回值
* 保证方法结构的正确
*/
public class _06_MethodReturn {
public static void main(String[] args) {
// 找出数字在数组中第一次出现索引位置
int x = 69;
int[] arr = {68,12,35,68,69,69};
//调用方法
int num =getNum(x,arr);
System.out.println(num);
}
//定义一个方法 找出数字在数组中第一次出现索引位置,并返回
static int getNum(int s,int[] arr1){
//遍历数组
for(int i=0;i<arr1.length;i++){
//判断元素和s是否相等
if(s == arr1[i]){
return i;
}
}
return -1;
}
}
方法签名
/**
* 方法签名:
* 由方法名字和形参列表(参数 个数 类型 顺序)构成 //getTwoSum(int a,int b)
*/
public class _08_MethodOverLoad {
public static void main(String[] args) {
}
// 计算两个整数和
static void getSum(int a, int b) {
System.out.println(a + b);
}
// 计算三个整数和
static void getSum(int a, int b, int c) {
System.out.println(a + b + c);
}
}
方法重载
/**
* 方法签名:
* 由方法名字和形参列表(参数 个数 类型 顺序)构成 //getTwoSum(int a,int b)
* 方法重载:
* 在同一类中,完成中某种同种功能的方法,允许方法名字一样,但是参数列表不一样,这样的情况称为方法的重载
*/
public class _08_MethodOverLoad {
public static void main(String[] args) {
getSum(2, 3);
getSum(2, 3, 5);
}
/*//计算两个整数的和
static void getTwoSum(int a,int b){
System.out.println(a+b);
}
//计算三个整数的和
static void getThreeSum(int a,int b,int c){
System.out.println(a+b+c);
}
//计算四个整数的和
static void getFourSum(int a,int b,int c,int d){
System.out.println(a+b+c+d);
}*/
// 方法重载
static void getSum(int a, int b) {
System.out.println(a + b);
}
static void getSum(int a, int b, int c) {
System.out.println(a + b + c);
}
static void getSum(int a, int b, int c, int d) {
System.out.println(a + b + c + d);
}
static void getSum(String x, int y) {
}
static void getSum(int y, String x) {
}
}
方法的重载和方法的返回值类型没有关系
/**
* 方法签名:
* 由方法名字和形参列表(参数 个数 类型 顺序)构成 //getTwoSum(int a,int b)
* 方法重载:
* 在同一类中,完成中某种同种功能的方法,允许方法名字一样,但是参数列表不一样,这样的情况称为方法的重载
* 方法的重载和方法的返回值类型没有关系
*/
public class _09_MethodOverLoad2 {
public static void main(String[] args) {
int x = getSum(2, 3);
System.out.println(x);
String y = getSum(2, 3, 5);
System.out.println(y);
}
static int getSum(int a, int b) {
return a + b;
}
static String getSum(int a, int b, int c) {
return a + b + c + "";
}
}