JavaSE编程基础6
一、方法例题;
例1:登记学生信息;
写入方法:
public void checkIn(int cno,String name,String sex,int age,String xclass){ System.out.println("登记学生信息"); System.out.println(String.format("学号:%d 姓名:%s 性别:%s 年龄:%d 班级:", cno,name,sex,age,xclass)); }
写入运行程序:
Scanner input = new Scanner(System.in); int id,nianling; String xingming,xingbie,banji,dengji; School xuexiao = new School(); xuexiao.checkIn(13112,"黎明","男",23,"7班"); System.out.println("登记新学生信息"); do{ System.out.println("请输入一个学生学号:"); id = input.nextInt(); System.out.println("请输入一个学生姓名:"); xingming = input.next(); System.out.println("请输入一个学生性别:"); xingbie = input.next(); System.out.println("请输入一个学生年龄:"); nianling = input.nextInt(); System.out.println("请输入一个学生班级:"); banji = input.next(); xuexiao.checkIn(id, xingming, xingbie, nianling, banji); System.out.println("是否进行登记学生信息(yes/no)"); dengji = input.next(); }while(dengji.equals("yes"));
例2:利用调用方法,生成一个矩形;
写入方法:
public void checkIn(int i, int j){ int a,b; for(a=1;a<=i;a++){ for(b=1;b<=j;b++){ System.out.print(" * "); } System.out.println(); } }
写入程序:
zhengfangxing juxing= new zhengfangxing(); juxing.checkIn(5,10);
例3:求矩形面积与圆的面积;
写入方法:
public double getArea(double r){ return 3.14d*r; }
写入运行程序:
Scanner input = new Scanner(System.in); int h,w,area; double zr,area_1; System.out.println("求矩形的面积》》》"); System.out.println("请输入矩形的长度:"); h = input.nextInt(); System.out.println("请输入矩形的宽度:"); w = input.nextInt(); Common cm = new Common(); area = cm.getArea(h, w); System.out.println(String.format("矩形的面积是:%d", area)); System.out.println("请输入一个圆的半径:"); zr = input.nextDouble(); area_1 = cm.getArea(zr); System.out.println(String.format("圆的面积是:%g", area_1));
方法重载:一个方法名可以使用多个功能;
优点:便于数据的管理;
如何实现方法的重载?
(1)、在一个类中,方法名相同,参数不同;
(2)、如果参数个数相同,则参数类型必须不同;
(3)、参数个数不相同;
二、数组;
1、一维数组;对数据进行管理。可以是数据,文件,boolean类型等;是java中的第一个对数据管理的对象;
语法:类型 数组名[] = new 类型[元素个数];
(1)、空间平分大小,连续的;
(2)、顺序号从下标为0开始;顺号:索引;
(3)、一个数组的最大长度索引是它的元素个数(长度)-1;
(4)、获得数组长度:数组名.length;
(5)、数组中的每一个元素的类型是一样的;
(6)、若要取出或写入数据到数组中指定元素,通过数组[索引]方式操作;p[0]=90;int s = p[3];
2、数组的三种方式:
(1)、例:int p[] = new int [];
定义数组大小,初始化,中括号内指定元素;
(2)、例:int p[];p = new int [20];
(3)、例:int p[] = {12,34,23,1,35};
数组的大小确定数组的长度;
例题:要求:
(1)、通过键盘录入指定考生的数量;
(2)、将指定数量的考生记录在分数数组中;
(3)、最后获得所有参加考试学生的总分,平均分;
Scanner input = new Scanner(System.in); int count,p[],i,sum,avg; sum = 0; System.out.println("《《《学生考试成绩信息》》》》"); System.out.println("===================="); System.out.println("请输入考试学生数量:"); count = input.nextInt(); p = new int[count]; for(i=1;i<=count;i++){ System.out.println(String.format("请输入第%d名学生的分数:", i)); p[i-1]=input.nextInt(); //求和; sum= sum+ p[i-1]; } System.out.println("各个学生分数的成绩:"); for(i=1;i<p.length+1;i++){ System.out.println(p[i-1]); } //求平均数; avg = sum/count; System.out.println(String.format("学生的总分是:%d", sum)); System.out.println(String.format("学生的平均分分是:%d", avg));
三、两数交换:
例题:第一种方法:
int x = 100,y=200,temp; temp = x+y; x = y; y = temp - x;
第二种方法:
temp = x; x = y; y = temp;
四、排序:
冒泡排序:两个两个数值进行相互比较;
注意:超过数组的范围称为越界;
冒泡规律:
(1)、外部比较几轮,数组长度-1;
(2)、内部:每一轮比较都会筛出一个极值,放到最后;
(3)、每一轮两两比较的次数都会比上一轮比较少一次;
例题:
int arr[] = {5,9,24,12,7}; for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } for(int i=0;i<arr.length-1;i++){ for(int m=0;m<arr.length-1-i;m++){ if(arr[m]>arr[m+1]){ int type = arr[m]; arr[m]=arr[m+1]; arr[m+1]=type; } } } System.out.println(); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); }