方法重载的基本使用与方法重载的注意事项 代码:/*
* 对于功能类似的方法来说,因为参数类表不一样,却需要记住那么多不同的方法名称,太麻烦*
* 方法的重载(Overlood),多个方法的名称一样,但是参数类表不一样。* 好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。*
* 方法重载与下列因素相关:
* 1. 参数个数不同* 2. 参数类型不同* 3. 参数的多类型顺序不同*
* 方法重载与下列因素无关:
* 1.与参数的名称无关* 2.与方法的返回值类型无关* */
public class Demo01MethodOverload {
public static void main(String[] args) {
/* System.out.println(sumTwo(10, 20)); // 30
System.out.println(sumThree(10, 20, 30)); // 60
System.out.println(sumFour(10, 20, 30, 40));*/
System.out.println(sum(10, 20)); // 30
System.out.println(sum(10, 20, 30)); // 60
System.out.println(sum(10, 20, 30, 40)); // 100
}
public static int sum(int a, int b) {
System.out.println("有2个参数的方法执行!");
return a + b;
}
public static int sum(int a, int b, int c) {
System.out.println("有3个参数的方法执行!");
return a + b + c;
}
public static int sum(int a, int b, int c, int d) {
System.out.println("有4个参数的方法执行!");
return a + b + c + d;
}
}
重载练习1_四中不同参数类 代码:/*
* 题目要求:
* 比较两个数据是否相等,
* 参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型.
* 并在main方法中进行测试* */
public class Demo02MethodOverloadSame {
public static void main(String[] args) {
byte a =10;
byte b =20;
System.out.println(isSame(a, b));
System.out.println(isSame((short)20, (short)20));
System.out.println(isSame(11, 12));
System.out.println(isSame(10L, 10L));
}
public static boolean isSame(byte a, byte b) {
System.out.println("两个byte参数的方法执行!");
boolean same;
if (a == b) {
same =true;
}else {
same =false;
}
return same;
}
public static boolean isSame(short a, short b) {
System.out.println("两个short参数的方法执行!");
boolean same = a == b ?true :false;
return same;
}
public static boolean isSame(int a, int b ) {
System.out.println("两个int参数的方法执行!");
return a == b;
}
public static boolean isSame(long a, long b) {
System.out.println("两个long参数的方法执行!");
if (a == b) {
return true;
}else {
return false;
}
}
}
重载练习2_判断方法的正确与错误 代码:public class Demo04OverloadJudge {
public static void oprn() {}// 正确重载
public static void oprn(int a) {}// 正确重载
static void oprn(int a, int b) {}// 代码错误:和第8行冲突
public static void oprn(double a,int b) {}// 正确重载
public static void oprn(int a,double b) {}// 代码错误:和第6行冲突
public void oprn(int i,double d) {}// 代码错误:和第5行冲突
public static void OPRN() {}// 代码正确不会报错,但是并不是有效重载
public static void oprn(int i,int j) {}// 代码错误:和第三行冲突
}
重载练习3_实现重载的pri 代码:// byte short int long float double char boolean
// String
// 在调用输出语句的时候,println方法其实就是进行了多种类型的重载形式.
public class Demo04OverloadPrint {
public static void main(String[] args) {
myPrint(100); // int
myPrint("Hello"); // String
}
public static void myPrint(byte num) {
System.out.println(num);
}
public static void myPrint(short num) {
System.out.println(num);
}
public static void myPrint(int num) {
System.out.println(num);
}
public static void myPrint(long num) {
System.out.println(num);
}
public static void myPrint(float num) {
System.out.println(num);
}
public static void myPrint(double num) {
System.out.println(num);
}
public static void myPrint(char zifu) {
System.out.println(zifu);
}
public static void myPrint(boolean is) {
System.out.println(is);
}
public static void myPrint(String str) {
System.out.println(str);
}
}
数组的概念 代码:/*
* 数组的概念:是一种容器,可以同时存放多个数据值。*
* 数组特点:
* 1. 数组是一种引用数据类型* 2. 数组当中的多个数据,类型必须统一* 3. 数组的长度在程序运行期间不可改变* */
import org.w3c.dom.ls.LSOutput;
public class Demo01Array {
public static void main(String[] args) {
int score1 =100;
int score2 =98;
int score3 =99;
System.out.println(score1 + score2 + score3);
}
}
数组的定义格式一_动态初始化 代码:/*
* 数组的概念:是一种容器,可以同时存放多个数据值。*
* 数组特点:
* 1. 数组是一种引用数据类型* 2. 数组当中的多个数据,类型必须统一* 3. 数组的长度在程序运行期间不可改变*
*数组的初始化:在内存当中创建一个数组,并且向其中赋予一些默认值。*
* 两种常见的初始化方式:
* 1. 动态初始化(指定长度)* 2. 静态初始化(指定内容)*
* 动态初始化数组的格式:
* 数据类型[] 数组名称 = new 数据类型[数组长度];
*
* 解析含义:
* 左侧数据类型: 也就是数组当中保存的数组,全是统一的什么类型* 左侧的中括号: 代表我是一个数组* 左侧数组名称: 给数组去一个名字* 右侧的new: 代表创建数组的动作* 右侧数据类型: 必须和左边的数据类型保持一致* 右边中括号的长度: 也就是数组当中,到底可以保存多少个数据,是一个int数字*
* */
import org.w3c.dom.ls.LSOutput;
public class Demo01Array {
public static void main(String[] args) {
// 创建一个数组,里边可以存放300个int数据
// 数据类型[] 数组名称 = new 数据类型[数组长度];
int [] arrayA =new int[300];
// 创建一个数组,能存放10个double类型的数据
double[] arrayB =new double[10];
// 创建一个数组,能存放5个字符串
String[] arrayC =new String[5];
}
}
数组的定义格式二_静态初始化 代码:/*
* 动态初始化(指定长度): 在创建数组的时候,直接指定数组当中的数据元素个数。* 静态初始化(指定内容): 在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。*
* 静态初始化基本格式:
* 数据类型[]数组名称 = new 数据类型[]{元素1, 元素2, ... };
*
* 注意事项:
* 虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素具体内容,也可以自动推算出来长度* */
public class Demo00Array {
public static void main(String[] args) {
// 直接创建一个数组,里面装的全都是int数字,具体为: 5、15、25
int[] arrayA =new int[] {5, 15, 25, 40};
//创建一个组,用来装字符串:"Hello"、"World"、"Java"
String[] arrayB =new String[] {"Hello","World","Java"};
}
}
数组的定义格式三_省略的初始化 代码:/*
* 使用静态初始化数组的时候,格式还可以省略一下。*
* 标准格式:
* 数据类型[]数组名称 = new 数据类型[] { 元素1, 元素2, ... };
*
* 省略格式:
* 数据类型[]数组名称 = { 元素1, 元素2, ... }
*
* 注意事项:
* 1. 静态初始化没有直接指定长度,但是仍然会自动推算得到长度。* 2. 静态初始化标准格式可以拆分成为两个步骤。* 3. 动态初始化也可以拆分成为两个步骤。* 4. 静态初始化一旦使用省略格式,就不能拆分成为两个步骤。*
* 使用建议:
* 如果不确定数组当中的具体内容,用动态初始化:否则,已经确定了具体的内容,用静态初始化。* */
public class Demo02Array {
public static void main(String[] args) {
// 省略格式的静态初始化
int[] arrayA = {10, 20, 30};
// 静态初始化的标准格式,可以拆分成为两个步骤
int[] arrayB;
arrayB =new int[] {11, 21, 31};
// 动态初始化也可以拆分成为两个步骤
int[] arrayC;
arrayC =new int[5];
// 静态初始化的省略格式,不能拆分成为两个步骤。
/* int[] arrayD;
arrayD = { 10, 20, 30};*/
}
}
访问数组元素进行获取 代码:/*
* 直接打印数组名称,得到的是数组对应的:内存地址哈希值。* 二进制:01
* 十进制:0123456789
* 16进制:0123456789abcdef
*
* 访问数组元素的格式:数组名称[索引值]
* 索引值:就是一个int数字,代表数组当中元素的编号。* 【注意】索引值从0开始,一直到“数组的长度-1”为止。* */
public class Demo04ArrayUse {
public static void main(String[] args) {
// 静态初始化的省略格式
int[] array = {10, 20, 30};
System.out.println(array); // [I@75412c2f
// 直接打印数组当中的元素
System.out.println(array[0]); // 10
System.out.println(array[1]); // 20
System.out.println(array[2]); // 30
System.out.println("======");
// 也可以将数组当中的某一个单个元素,赋值交给变量
int num = array[1];
System.out.println(num); // 20
}
}
访问数组元素进行赋值