1.学习了解java内容与特点,安装调试java集成开发环境。
2.学习java的基本程序设计结构,包括数据类型,变量,字符串,输入输出等。
//检测字符串是否相等
String greeting = "hello";
boolean result2 = "hello".equals(greeting);
System.out.println(result2);
boolean result3 = "hello" == greeting ? true : false;
System.out.println(result3);
int result4 = greeting.compareTo("hello") ;
System.out.println(result4);
//输入输出
//1. print为一般输出,同样不能保留精度格式转化,也不能换行输出
//2. printf常用于格式转换,但需要注意不是换行输出,只用于精度转换
//3. println为换行输出,不能用于格式转换
Scanner in = new Scanner(System.in);
System.out.println("What is your name? ");
String name = in.nextLine();
System.out.println("How old are you? ");
int age = in.nextInt();
System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
System.out.printf("Hello, %s. Next year, you'll be %d", name , (age + 1));
System.out.println();
String message = String.format("Hello, %s. Next year, you'll be %d", name , age);
System.out.println(message);
3.学习了控制流程的相关知识,包括条件语句,选择,循环,并编写相关程序。
if语句
int a=123;
int b=456;
if (a > b)
{
System.out.println("a > b ");
}else {
System.out.println("b > a ");
}
//switch语句
System.out.println("Please input :");
Scanner in = new Scanner(System.in);
int val = in.nextInt();
switch(val) {
case 1:
System.out.println("val = 1");break;
case 2:
System.out.println("val = 2");break;
case 3:
System.out.println("val = 3");break;
}
while语句
Scanner in = new Scanner(System.in);
System.out.print("How much money do you need to retire ?");
double goal = in.nextDouble();
System.out.print("How much money will you contribute every day ?");
double payment = in.nextDouble();
System.out.print("Interset rate in %: ");
double interestRate = in.nextDouble();
double balance = 0;
int years = 0;
while(balance < goal )
{
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
years++;
}
System.out.println("You can retire in " + years + " years.");
Scanner in = new Scanner(System.in);
System.out.print("How much money will you contribute every day ?");
double payment = in.nextDouble();
System.out.print("Interset rate in %: ");
double interestRate = in.nextDouble();
double balance = 0;
int years = 0;
String input;
do
{
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
years++;
System.out.printf("After year %d, your balance is %, .2f%n", years, balance);
System.out.print("Ready to retire? (Y/N) ");
input = in.next();
}
while(input.equals("N"));
4.学习了解数组的相关内容,包括一维二维数组,以及对数组的一些操作,并完成相关程序编写。
数组
//二维数组,数组的数组
//数组
int[] a = new int[100];
int b[];
for(int i = 0; i < 100; i++ )
{
a[i] = i;s
}
int[] array = { 10, 23, 6, 88, 19 };
int index = 0;
int max = array[index];// 最大值
for (int i = 1; i < array.length; i++) {
if (array[i] > max) {
index = i;
max = array[i];
}
}
System.out.println("最大值为" + max + ",索引号为" + index);
System.out.println(Arrays.toString(array));//打印数组
System.out.println(Arrays.deeptoString(a));//打印二维数组
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.arraycopy(smallPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
{
System.out.println(i + ":" + luckyNumbers[i]);
}
Scanner in = new Scanner(System.in);
System.out.println("How many numbers do you need to draw? ");
int k = in.nextInt();
System.out.println("What is the highest number you can draw? ");
int n = in.nextInt();
int[] numbers = new int[n];
for (int i = 0; i < numbers.length; i++)
numbers[i] = i + 1;
int[] result = new int[k];
for (int i = 0; i < result.length; i++)
{
int r = (int) (Math.random() * n);
result[i] = numbers[r];
numbers[r] = numbers[n - 1];
n--;
}
Arrays.parallelSort(result);
System.out.println("Bet the following combination. It'll make you rich!");
for (int r : result)
System.out.println(r);
打印一个二维数组
final double STARTRATE = 10;
final int NRATES = 6;
final int NYEARS = 10;
double[] interestRate = new double[NRATES];
for (int j = 0; j < interestRate.length; j++)
interestRate[j] = (STARTRATE + j) / 100.0;
double[][] balances = new double[NYEARS][NRATES];
for (int j = 0; j < balances[0].length; j++)
balances[0][j] = 1000;
for (int i = 1; i < balances.length; i++)
{
for (int j = 0; j < balances[i].length; j++)
{
double oldBalance = balances[i - 1][j];
double interest = oldBalance * interestRate[j];
balances[i][j] = oldBalance + interest;
}
}
for (int j = 0; j < interestRate.length; j++)
System.out.printf("%9.0f%%", 100 * interestRate[j]);
System.out.println();
for (double[] row : balances)
{
for (double b : row)
System.out.printf("%10.2f", b);
System.out.println();
}
打印一个不规则数组
final int NMAX = 10;
int[][] odds = new int[NMAX + 1][];
for (int n = 0; n <= NMAX; n++)
odds[n] = new int[n + 1];
for (int n = 0; n < odds.length; n++)
for(int k = 0; k < odds[n].length; k++)
{
int lotteryOdds = 1;
for (int i = 1; i <= k; i++)
lotteryOdds = lotteryOdds * (n - i + 1) / i;
odds[n][k] = lotteryOdds;
}
for (int[] row : odds)
{
for (int odd : row)
System.out.printf("%4d", odd);
System.out.println();
}
int arr[][] = {{3,45,6},{22,44,33},{33,444,23,77},{75,85,23}};
System.out.println(arr);
System.out.println(arr[0][1]);
System.out.println(arr.length);
System.out.println(arr[3].length);
for (int i = 0; i < arr.length ; i++)
{
for (int j = 0; j < arr[i].length; j++)
{
System.out.print(arr[i][j] + " ");
}
}
System.out.println("最大值为" + max + ",索引号为" + index);
System.out.println(Arrays.toString(array));//打印数组
System.out.println(Arrays.deeptoString(a));//打印二维数组
方法重写和方法重载的区别:
重载 重写
Overloading Overiding
方法名称相同,参数的类型或个数不同 方法名称,参数类型,返回值类型全部相同
对权限没有要求 被重写的方法不能拥有更严格的权限
发生在一个类中 发生在继承类中