本帖最后由 Zengpenh 于 2018-1-17 01:05 编辑
学习经历:
今天自习,看了一些视频内容!!
一、final关键字的使用:
特点:1、用于修饰类
2、用于修饰方法
3、用于修饰变量
final修饰变量的初始化时机
二、多态:
多态的前提:
1、要有继承关系
2、要有方法覆写
3、要有父类引用指向子类对象
多态中的成员访问特点:
1、构造方法:访问子类时先访问父类中的构造方法
2、成员变量:编译看左边、运行看左边
3、成员函数:编译看左边、运行看右边
当父类引用指向子类对象时,只访问子类中的成员方法
4、静态方法:编译看左边、运行看左边
接下来是一大堆作业:
/**
* 分析以下需求,并用代码实现(每个小需求都需要封装成方法) 1.求两个数据之和(整数和小数) 2.判断两个数据是否相等(整数和小数)
* 3.获取两个数中较大的值(整数和小数) 4.获取两个数中较小的值(整数和小数)
*
*/
public class Day5Test11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num1 = 2;
int num2 = 8;
double num3 = 0.343;
double num4 = 3.5643;
sumInt(num1, num2);
sumDouble(num3, num4);
System.out.println("------------");
intEquals(num1, num2);
DoubleEquals(num3, num4);
System.out.println("------------");
intMax(num1, num2);
doubleMax(num3, num4);
System.out.println("------------");
intMin(num1, num2);
doubleMin(num3, num4);
}
/*
* 1.求两个数据之和(整数和小数) (1)参数类型:int或者double (2)返回值类型:int或者double
* 所以需要定义两个重载的方法,一个为求两个int数据的和,一个为求两个double数据的和
*/
public static int sumInt(int num1, int num2) {
int sum = num1 + num2;
System.out.println(num1 + "+" + num2 + "=" + sum);
return sum;
}
public static double sumDouble(double num3, double num4) {
double sum = num3 + num4;
System.out.println(num3 + "+" + num4 + "=" + sum);
return sum;
}
/*
* 2.判断两个数据是否相等(整数和小数) (1)参数类型:int或者double (2)返回值类型:boolean
* 所以需要定义两个重载的方法,一个为判断两个int数据是否相等,一个为判断两个double数据是否相等
*/
public static boolean intEquals(int num1, int num2) {
boolean equals = (num1 == num2) ? true : false;
if (equals == true) {
System.out.println(num1 + "和" + num2 + "相等");
} else {
System.out.println(num1 + "和" + num2 + "不相等");
}
return equals;
}
public static boolean DoubleEquals(double num3, double num4) {
boolean equals = (num3 == num4) ? true : false;
if (equals == true) {
System.out.println(num3 + "和" + num4 + "相等");
} else {
System.out.println(num3 + "和" + num4 + "不相等");
}
return equals;
}
/*
* 3.获取两个数中较大的值(整数和小数) (1)参数类型:int或者double (2)返回值类型:int或者double
* 所以需要定义两个重载的方法,一个为求两个int数据的最大值,一个为求两个double数据的最大值
*/
public static int intMax(int num1, int num2) {
int max = (num1 > num2) ? num1 : num2;
System.out.println(num1 + "和" + num2 + "\t" + max + "较大");
return max;
}
public static double doubleMax(double num3, double num4) {
double max = (num3 > num4) ? num3 : num4;
System.out.println(num3 + "和" + num4 + "\t" + max + "较大");
return max;
}
/*
* 4.获取两个数中较小的值(整数和小数) (1)参数类型:int或者double (2)返回值类型:int或者double
* 所以需要定义两个重载的方法,一个为求两个int数据的最校值,一个为求两个double数据的最小值
*/
public static int intMin(int num1, int num2) {
int min = (num1 < num2) ? num1 : num2;
System.out.println(num1 + "和" + num2 + "\t" + min + "较小");
return min;
}
public static double doubleMin(double num3, double num4) {
double min = (num3 < num4) ? num3 : num4;
System.out.println(num3 + "和" + num4 + "\t" + min + "较小");
return min;
}
}
**1.键盘录入一个整数(正数或者负数都可以,但是符号位不算有效的数字位)
2.定义一个方法,该方法的功能是计算该数字是几位数字,并将位数返回
3.在main方法中打印该数字是几位数
4.演示格式如下:
(1)演示一:
请输入一个整数:1234
控制台输出:1234是4位数字
(2)演示二:
请输入一个整数:-34567
控制台输出:-34567是5位数字
* */
public class Day5Test10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = scanner.nextInt();
System.out.println(num+"是"+number(num)+"位数字");
}
public static int number(int num) {
String string = String.valueOf(num);// 将数字转换成字符串
if (num < 0) {
String string2 = string.substring(1);//如果num<0就从字符串的第一位开始截取字符串
int length = string2.length();//然后再获取字符串的长度
return length;
} else {
int length = string.length();
return length;
}
}
}
**
* 分析以下需求,并用代码实现 1.定义一个方法equals(int[] arr1,int[]
* arr2),功能:比较两个数组是否相等(长度和内容均相等则认为两个数组是相同的) 2.定义一个方法fill(int[] arr,int
* value),功能:将数组arr中的所有元素的值改为value 3.定义一个方法fill(int[] arr,int fromIndex,int
* toIndex,int value),功能:
* 将数组arr中的元素从索引fromIndex开始到toIndex(不包含toIndex)对应的值改为value
*
*/
public class Day5Test08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1 = { 3, 4, 5, 6, 7 };
int[] arr2 = { 3, 3, 44, 5, 6, 7 };
boolean equal = equals(arr1, arr2);
System.out.println(equal);
System.out.println("-----------------");
int[] arr = { 1, 2, 34, 7, 33, 23, 11 };
fill(arr, 7);
System.out.println(Arrays.toString(arr));
System.out.println("-----------------");
fill(arr, 2, 6, 9);
System.out.println(Arrays.toString(arr));
}
// 比较两个数组是否相等
public static boolean equals(int[] arr1, int[] arr2) {
boolean equal = true;
if (arr1.length == arr2.length) {
for (int a = 0; a < arr1.length; a++) {
if (arr1[a] != arr2[a]) {
equal = false;
break;
} else
equal = true;
}
} else
equal = false;
return equal;
}
// 定义一个方法fill(int[] arr,int value),功能:将数组arr中的所有元素的值改为value
public static void fill(int[] arr, int value) {
for (int x = 0; x < arr.length; x++) {
arr[x] = value;
}
}
// 3.定义一个方法fill(int[] arr,int fromIndex,int toIndex,int value),功能:
// 将数组arr中的元素从索引fromIndex开始到toIndex(不包含toIndex)对应的值改为value
public static void fill(int[] arr, int fromIndex, int toIndex, int value) {
for (int x = 0; x < arr.length; x++) {
if (x >= fromIndex && x < toIndex) {
arr[x] = value;
}
}
}
}
/**分析以下需求,并用代码实现
1.键盘录入长方形的长和宽
定义方法计算该长方形的周长,并在main方法中打印周长 (长+宽)*2
2.键盘录入长方形的长和宽
定义方法计算该长方形的面积,并在main方法中打印面积 长乘宽
*/
public class Day5Test07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.println("请输入长方形的长:");
int long1=scanner.nextInt();
System.out.println("请输入长方形的宽:");
int wide=scanner.nextInt();
int perimter=perimeter(long1, wide);
System.out.println("长为"+long1+"宽为:"+wide+"的长方形的周长为:"+perimter);
int area=area(long1, wide);
System.out.println("长为"+long1+"宽为:"+wide+"的长方形的面积为:"+area);
}
public static int perimeter(int long1,int wide){
int perimeter=(long1+wide)*2;
return perimeter;
}
public static int area(int long1,int wide){
int area=long1*wide;
return area;
}
}
|
|