javaSE基础02
作者:gqk;
1,程序控制(重点)
程序的控制部分主要就是判断、循环操作。
判断:if、if…else、switch
--讲解do{}while()和while()do{}的区别
范例:打印九九乘法表
public class Demo38 { public static void main(String args[]){ for(int x=1;x<10;x++){ for(int y=1;y<=x;y++){ System.out.print(x + "*" + y + "=" + x * y + "\t") ; } System.out.println() ; }}};
--输入一个月份,输出对应的季节。
--随便输入一个年月日计算为当年的第几天
import java.util.Scanner; public class practice { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入年份:"); int year = sc.nextInt(); System.out.print("请输入月份:"); int month = sc.nextInt(); System.out.print("请输入日:"); int day = sc.nextInt(); int count = 0; int days = 0; if (year > 0 && month > 0 && month < 13 && day > 0 && day < 32) { for (int i = 1; i < month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: { if ((year%4==0&&year%100!=0)||year%400==0) { days = 29; } else { days = 28; } break; } } count = count + days; } count = count + day; System.out.println(year + "年" + month + "月" + day + "日是" + year + "年的第" + count + "天"); } else System.out.println("数据输入错误!"); } }
方法(绝对重点):可以理解为对象的表现行为;我们平时将一些重复性的复杂性的功能写在方法中为了方便开发着调用
在各个语言中实际上都有函数的定义,那么函数在 Java 中称为方法。
方法的定义格式如下:
public static 返回值类型 方法名称(参数类型 参数名称,.....) { [return 返回值] ; }
static 为静态的方法面向对象章节讲
讲解void和有返回值的使用
方法的重载:对内表现一种形式,对外表现多种形态;
方法名称相同:
方法的参数名称不同:个数,类型,类型不同时的顺序不同,
和返回值类型无关
System.out.println()//就是方法的重载
数组(重点)
数组本身属于引用数据类型,所以在使用的时候要过多的考虑内存的关系。
数组:就是一组相关变量的集合,例如:现在如果按照最早的概念要定义 100 个整型变量:i1、i2、…i100,很明显 这样管理起来会很麻烦,那么可以通过数组的方式来进行管理,在 Java 中数组有两种定义的方式。
格式一:声明并开辟数组:
数据类型 数组名称[] = new 数据类型[长度] ; 数据类型 [] 数组名称 = new 数据类型[长度] ;
格式二:分两步完成
声明数组: 数据类型 数组名称[] = null ; 开辟数组空间: 数组名称 = new 数据类型[数组长度] ;
一定要注意,数组本身是引用数据类型,所以引用数据类型的默认值是 null
通过一下代码来分析数组的内存
public class ArrayDemo03 { public static void main(String argbs[]){ int data[] = null ; // 声明数组 int temp[] = null ; // 声明数组 data = new int[10] ; // 开辟空间 System.out.println("数组长度是:" + data.length) ; for(int x=0;x<data.length;x++){ data[x] = x ; } temp = data ; // 将 data 数组的内容给了 temp temp[1] = 9 ; // data 也要变化 temp[2] = 10 ; // data 也要变化 for(int x=0;x<data.length;x++){ System.out.print(data[x] + "、") ; }
}
}
一个数组实际上是在堆内存中保存的一快数据代码,而且一个堆内存中本身可以被多个栈内存所指向,那么实际上 这一点在方法的使用上也非常的类似(分析内存)
public class ArrayDemo08 { public static void main(String argbs[]){ int data[] = {1,3,4,1,3,54,5,43,3,2,1,5,7,87} ; print(data) ; // int temp[] = data ; } public static void print(int temp[]){ for(int x=0;x<temp.length;x++){ System.out.print(temp[x] + "、") ; } } };
--讲解数组排序,封装排序方法;
Java 对数组的支持
在 Java 的开发平台之中,为了方便开发,已经提供了很多的支持的操作方法,也有许多专门为数组操作的方法。
范例:数组排序
public class ArrayDemo11 { public static void main(String argbs[]){ int data[] = {1,3,4,1,3,54,5,43,3,2,1,5,7,87} ; java.util.Arrays.sort(data) ; // 排序 print(data) ; // int temp[] = data ;
} public static void print(int temp[]){ for(int x=0;x<temp.length;x++){ System.out.print(temp[x] + "、") ; } } };
也可以完成数组的拷贝操作,可以将一个数组的部分内容拷贝到另外一个数组之中。
public class ArrayDemo12 { public static void main(String argbs[]){ // 最终结果,data1 是:{1,2,3,55,66,77,7,8,9} int data1[] = {1,2,3,4,5,6,7,8,9} ; int data2[] = {11,22,33,44,55,66,77,88,99} ; // 系统方法:System.arraycopy(源数组,源数组开始点,目标数组,目标数组开始点,长度) ; System.arraycopy(data2,4,data1,3,3) ; print(data1) ; } public static void print(int temp[]){ for(int x=0;x<temp.length;x++){ System.out.print(temp[x] + "、") ; } } };
总结
方法的作用及重载的使用
数组及内存的分配问题
预习:
面向对象的主要特征、类与对象的关系、构造方法、private关键字、String类、引用传递。