*定义方法:
修饰符 返回值类型 方法名(参数列表){
//方法体;
}
对于:public static int max(int num1,int num2){
...
}这个方法,public static作为修饰符,为静态修饰符;int为说明该方法的返回值是一个int型数据,这个方法包含两个int型形式参数。
主程序main()也是一种方法,它是由Java虚拟机进行调用的。
*可以看出Java中的方法几乎就等同于C语言中的函数,并且与C中在参数传递上也都是:传递的只是实参的值,而非实参本身。
*重载方法:Java中一个类里面可以有多个同名方法,但其各自的参数表不同;编译器会根据情况选择最匹配的方法。但多个方法匹配度相同时候会产生编译错误,称为歧义调用。
*变量的作用域
是指变量可在程序中引用的范围。方法中的变量称为局部变量。局部变量作用域是从其声明开始,到包含该变量声明的块结束。局部变量在使用之前要先进行声明。基于此,可以在一个方法的不同代码块里声明同名的局部变量。
*输入年份和月份,显示该月日历
- import java.util.Scanner;
- public class C0501 {
- public static void main(String[] args){
- Scanner input=new Scanner(System.in);
- System.out.print("请输入年份:");
- int year=input.nextInt();
- System.out.print("请输入月份:");
- int month=input.nextInt();
- int monthDays=31;
- if(month%2==0&&month!=8)
- monthDays=30;
- if(month==2)
- monthDays=28;
- if(leapYear(year)==1&&month==2)
- monthDays=29;
- int countLeapYear=0;
- for(int i=1800;i<year;i++){
- if(leapYear(i)==1)
- countLeapYear++;
- }
- int dateCount=(year-1800)*365+countLeapYear;
- String ms1="Jan";
- switch(month){
- case 2:dateCount+=31;ms1="Feb";break;
- case 3:dateCount+=59;ms1="Mar";break;
- case 4:dateCount+=90;ms1="Apr";break;
- case 5:dateCount+=120;ms1="May";break;
- case 6:dateCount+=151;ms1="June";break;
- case 7:dateCount+=181;ms1="July";break;
- case 8:dateCount+=212;ms1="Aug";break;
- case 9:dateCount+=243;ms1="Sep";break;
- case 10:dateCount+=273;ms1="Oct";break;
- case 11:dateCount+=304;ms1="Nov";break;
- case 12:dateCount+=334;ms1="Dec";break;
- default:break;
- }
- if(month>1&&(leapYear(year)==1))
- dateCount++;
- int n=(dateCount%7+3)%7;
- int pcount=0;
- System.out.printf(" %s %d \n",ms1,year);
- System.out.println("-----------------------------------");
- System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
- for(int i=1;i<=n;i++){
- System.out.print(" ");
- pcount++;
- }
- for(int i=0;i<monthDays;i++){
- if(pcount%7==0)
- System.out.printf("\n");
- System.out.printf("%5d",i+1);
- pcount++;
- }
- }
- public static int leapYear(int n){
- if(n%4==0&&(n%100!=0))
- return 1;
- else if(n%400==0)
- return 1;
- else
- return 0;
- }
-
- }
编程练习:
5.26,显示前100个回文素数
- public class C05T26 {
- public static void main(String[] args){
- int counter=0;
- int i=2;
- while(counter<100){
- if(judgeHuiwen(i)&&judgePrime(i)){
- counter++;
- System.out.printf("%8d",i);
- if(counter%10==0)
- System.out.printf("\n");
- }
- i++;
- }
- }
- public static boolean judgeHuiwen(int n){
- int k=n;
- int rNum=0,remain;
- while(k!=0){
- remain=k%10;
- rNum=rNum*10+remain;
- k=k/10;
- }
- if(rNum==n)
- return true;
- else
- return false;
- }
- public static boolean judgePrime(int n){
- int i;
- if(n==0||n==1)
- return false;
- for(i=2;i<=n;i++){
- if(n%i==0)
- break;
- }
- if(i==n)
- return true;
- else
- return false;
- }
-
- }
5.33调用System.currentTimeMillis()显示当前日期和时间。
|