Day05

一,变量
–1,特点
出现的位置不同,变量的名字,作用和使用范围都不一样
成员位置(类里方法外)–成员变量
局部位置(方法里)–局部变量
–2,局部变量
位置是在方法里,作用范围是在方法里,必须手动初始化
–3,成员变量
位置是在类里,作用范围是在整个类里,不用初始化
–4,测试
package cn.tedu.basic;
//测试 变量
//总结
//1,局部变量–在方法里,作用也是在方法里,必须初始化
//2,成员变量–在类里,作用是正整个类中,不用初始化也有默认值
//3,成员变量,根据类型不同,默认值也不同.
//整型是0,小数是0.0,布尔是false,char是\u0000
//4,当 局部变量名 和 成员变量名 相同时,就近原则,优先使用局部的值
public class Test1 {
//1, 成员变量,定义在类里方法外,作用范围是整个类里+都有默认值
static int age1;//整数的成员变量,默认值是0
static double age2;//小整数的成员变量,默认值是0.0
static boolean age3;//boolean的成员变量,默认值是flase
public static void main(String[] args) {
//2, 局部变量,定义在方法里,作用范围是+必须初始化
byte a = 10;
System.out.println(a);//10,使用了局部变量
System.out.println(age1);//0,使用了成员变量
//4,当局部变量名 和 成员变量名 相同时,优先使用局部变量
int age1 = 20;
System.out.println(age1);//20,就近原则
//3,由于boolean类型的默认值是false,所以取反,条件才成立
if(!age3) {
System.out.println(1);
}
}

	}

二,方法
–1,概述
被命名的代码块
好处:提高代码的复用性
–2,语法
方法的修饰符 方法的返回值 方法名([参数列表]){
方法体
}
–3,方法的使用
–方法的调用
package cn.tedu.method;
//测试 方法的调用
//总结
//1,方法什么时候执行?–当被调用时
//2,方法的定义的语法?–修饰符 返回值 方法名(参数列表){}
public class Test2 {
public static void main(String[] args) {
//复制一行: ctrl alt 上/下箭头
//删除一行: ctrl d
System.out.println(1);
System.out.println(2);

				hello();//调用方法
				System.out.println(3);
				System.out.println(4);
			}
			//创建hello()方法
		//语法:方法的修饰符 方法的返回值 方法名(参数列表){方法体}
			public static void hello() {
				System.out.println(9);
				System.out.println(8);
			}
		}

	--方法的传参
		package cn.tedu.method;
		//测试 方法的传参
		//总结:
		//1, 参数列表: 是可选的,可以空着,也可以有多个,之间逗号隔开
		//2, 面试题: 实参和形参的区别?
			//实参:是进行方法调用时,传入的实际参数
				//add3(1,2,"3")
			//形参:是定义方法时,参数列表里规定的参数的类型 参数名
				//add3(int a,int b,String c)

		//3, 匹配关系:方法名要匹配 + 参数类型要匹配!!
		public class Test3 {
			public static void main(String[] args) {
			//调用方法时 -- 参数不能乱写,参数的类型一定要匹配!!!
				add(1);
				add2(1,2);
				add3(1,2,"3");
				add4("3",1,2);//TODO 
			}
			//TODO 创建add4(参数类型 参数名)
			public static void add4(String a,int b,int c) {
				System.out.println(a+b+c);//312
			}
			//TODO 创建add3(参数类型 参数名)
			public static void add3(int a,int b,String c) {
				System.out.println(a+b+c);//15tony
			}
			//TODO 创建add2(参数类型 参数名)
			public static void add2(int a,int b) {
				System.out.println(a+b);//15
			}
			//创建add(参数类型 参数名)--参数类型必须和5的类型匹配
			public static void add(int a) {
				System.out.println(a);
			}
		}

	--方法的返回值
		package cn.tedu.method;
		//测试 方法的返回值
		//总结
		//1,通过return关键字,,把结果返回给调用位置
		//2,方法没有返回值就写void,有返回值写啥?--要看数据的类型
		public class Test4 {
			public static void main(String[] args) {
				//3,使用变量,接受add()返回来的结果
				int res = add(1,2);
				System.out.println(res*res);
				
				String res2 = add2("tony",1,2);//TODO
				System.out.println(res2);
				
				String res3 = add3("tony");//TODO
				System.out.println(res3);
			}
			//TODO
			public static String add3(String a) {
				return a+"爱Java!";
			}
			//TODO 
			public static String add2(String a,int b,int c) {
				return a+b;
			}
			//1,如果方法需要,把结果返回,,
			//方法返回值的位置,,应该写,返回的数据 的 类型
			public static int add(int a,int b) {
				return a+b;//2,return把结果返回给调用位置
			}
			
		}

--4,方法重载/overload		
	--1,概述
		在一个类里的现象,方法名相同,但是 参数列表不同(个数/类型)
		好处:体现了程序的灵活性...啥类型数据都可以打印
	--2,练习
		--求和
			package cn.tedu.method;
			//测试 方法重载overload
			//总结:
			//1,方法重载--同一个类里方法名相同,参数列表不同
			//2,作用--体现了程序的灵活性--各种类型的参数都能接收
			public class Test5_Overload {
				public static void main(String[] args) {
			//2,程序会根据参数的个数,参数的类型自动匹配 同名的add()
					add("1",2,3);//匹配add(String a,int b,int c)
					add(2,3);//匹配add(int a,int b) 
					add(1,2,"3");//匹配add(int a,int b,String c) 
				}
			//1,提供重载的add()--同一个类里方法名相同,参数列表不同
				public static void add(String a,int b,int c) {
					System.out.println(2);
				}
				public static void add(int a,int b,String c) {
					System.out.println(1);
				}
				public static void add(String a,int b) {
					System.out.println(a);
				}
				public static void add(int a,int b,int c) {
					System.out.println(a);
				}
				public static void add(int a,int b) {
					System.out.println(a);
				}
				public static int add(int a) {
					return a;
				}

			}

		--打印
			package cn.tedu.method;
			//测试 重载
			public class Test6_Overload {
				public static void main(String[] args) {
					print(10);
					print(1.1);
					print(true);
					print('中');
					print("hello");
				}
				//TODO 
				public static void print(int a) {
					System.out.println(a);
				}
				public static void print(double a) {
					System.out.println(a);
				}
				public static void print(boolean a) {
					System.out.println(a);
				}
				public static void print(char a) {
					System.out.println(a);
				}
				public static void print(String a) {
					System.out.println(a);
				}
			}

三,数组
–1,概述
英文Array,标志[]
存储多个 相同类型的 数据
数组有下标/索引/脚标,默认是从0开始
数组一旦创建,长度不可变
–2,创建数组
–语法:数组类型[] 数组名 = new 数组类型[容量];
–动态初始化
int[] a = new int[5];
–静态初始化
int[] a = new int[]{1,2,3,4,5};
int[] a = {1,2,3,4,5};
–练习
数组中存入hello
package cn.tedu.method;
//测试 创建数组
//数组中存入hello
public class Test7_Array {
public static void main(String[] args) {
//TODO 静态初始化
char[] a = new char[]{‘h’,‘e’,‘l’,‘l’,‘o’};
char[] b = {‘h’,‘e’,‘l’,‘l’,‘o’};
System.out.println(a);
System.out.println(a.length);//获取a数组的长度
System.out.println(b.length);

				//TODO 动态初始化
				char[] c = new char[5];//c里都是默认值\u0000
				c[0] = 'h' ;//修改,c数组里0下标存的数据
				c[1] = 'e' ;//修改,c数组里1下标存的数据
				c[2] = 'l' ;//修改,c数组里2下标存的数据
				c[3] = 'l' ;//修改,c数组里3下标存的数据
				c[4] = 'o' ;//修改,c数组里4下标存的数据
		//报错,ArrayIndexOutOfBoundsException :5
		//访问了不存在的下标
		//		c[5] = 'h' ;
				
				//查看,c数组里0下标存的数据
		//		System.out.println( c[0] );
				System.out.println(c);
				
			}
		}

扩展:
–预习数组的遍历 -网页版笔记的5.4
–练习:
–求数组里的奇数的个数
–求数组里的偶数的和

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值