*定义方法:
修饰符 返回值类型 方法名(参数列表){
//方法体;
}
对于:public static int max(int num1,int num2){
...
}这个方法,public static作为修饰符,为静态修饰符;int为说明该方法的返回值是一个int型数据,这个方法包含两个int型形式参数。
主程序main()也是一种方法,它是由Java虚拟机进行调用的。
*可以看出Java中的方法几乎就等同于C语言中的函数,并且与C中在参数传递上也都是:传递的只是实参的值,而非实参本身。
*重载方法:Java中一个类里面可以有多个同名方法,但其各自的参数表不同;编译器会根据情况选择最匹配的方法。但多个方法匹配度相同时候会产生编译错误,称为歧义调用。
*变量的作用域
是指变量可在程序中引用的范围。方法中的变量称为局部变量。局部变量作用域是从其声明开始,到包含该变量声明的块结束。局部变量在使用之前要先进行声明。基于此,可以在一个方法的不同代码块里声明同名的局部变量。
*输入年份和月份,显示该月日历
importjava.util.Scanner;
publicclassC0501 {
publicstaticvoidmain(String[] args){
Scanner input=newScanner(System.in);
System.out.print("请输入年份:");
intyear=input.nextInt();
System.out.print("请输入月份:");
intmonth=input.nextInt();
intmonthDays=31;
if(month%2==0&&month!=8)
monthDays=30;
if(month==2)
monthDays=28;
if(leapYear(year)==1&&month==2)
monthDays=29;
intcountLeapYear=0;
for(inti=1800;i
if(leapYear(i)==1)
countLeapYear++;
}
intdateCount=(year-1800)*365+countLeapYear;
String ms1="Jan";
switch(month){
case2:dateCount+=31;ms1="Feb";break;
case3:dateCount+=59;ms1="Mar";break;
case4:dateCount+=90;ms1="Apr";break;
case5:dateCount+=120;ms1="May";break;
case6:dateCount+=151;ms1="June";break;
case7:dateCount+=181;ms1="July";break;
case8:dateCount+=212;ms1="Aug";break;
case9:dateCount+=243;ms1="Sep";break;
case10:dateCount+=273;ms1="Oct";break;
case11:dateCount+=304;ms1="Nov";break;
case12:dateCount+=334;ms1="Dec";break;
default:break;
}
if(month>1&&(leapYear(year)==1))
dateCount++;
intn=(dateCount%7+3)%7;
intpcount=0;
System.out.printf(" %s %d \n",ms1,year);
System.out.println("-----------------------------------");
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
for(inti=1;i<=n;i++){
System.out.print(" ");
pcount++;
}
for(inti=0;i
if(pcount%7==0)
System.out.printf("\n");
System.out.printf("%5d",i+1);
pcount++;
}
}
publicstaticintleapYear(intn){
if(n%4==0&&(n%100!=0))
return1;
elseif(n%400==0)
return1;
else
return0;
}
}
编程练习:
5.26,显示前100个回文素数
publicclassC05T26 {
publicstaticvoidmain(String[] args){
intcounter=0;
inti=2;
while(counter<100){
if(judgeHuiwen(i)&&judgePrime(i)){
counter++;
System.out.printf("%8d",i);
if(counter%10==0)
System.out.printf("\n");
}
i++;
}
}
publicstaticbooleanjudgeHuiwen(intn){
intk=n;
intrNum=0,remain;
while(k!=0){
remain=k%10;
rNum=rNum*10+remain;
k=k/10;
}
if(rNum==n)
returntrue;
else
returnfalse;
}
publicstaticbooleanjudgePrime(intn){
inti;
if(n==0||n==1)
returnfalse;
for(i=2;i<=n;i++){
if(n%i==0)
break;
}
if(i==n)
returntrue;
else
returnfalse;
}
}
5.33调用System.currentTimeMillis()显示当前日期和时间。
importjavax.swing.JOptionPane;
publicclassC05T33 {
publicstaticvoidmain(String[] args){
longtotalms=System.currentTimeMillis();
longyear=cYear(totalms);
String month=cMonth(totalms);
longdate=cDate(totalms);
longhour=cHour(totalms);
longmin=cMin(totalms);
longsec=cSec(totalms);
JOptionPane.showMessageDialog(null,"Current date and"+
" time is "+month+" "+date+", "+year+" "+
hour+":"+min+":"+sec);
}
publicstaticlongcYear(longn){
longx=0;
longdays=n/1000/3600/24;
longi=1969;
while(days>=x){
if(leapYear(i))
x+=366;
else
x+=365;
i++;
}
returni;
}
publicstaticString cMonth(longn){
longdays=n/1000/3600/24;
longi;
for(i=1970;i
days=days-365;
if(leapYear(i))
days--;
}
String x="";
if(leapYear(cYear(n))){
if(days<=31)
x="Jan";
if(days<=60&&days>31)
x="Feb";
if(days<=91&&days>60)
x="Mar";
if(days<=121&&days>91)
x="Apr";
if(days<=152&&days>121)
x="May";
if(days<=182&&days>152)
x="Jun";
if(days<=213&&days>182)
x="Jul";
if(days<=244&&days>213)
x="Aug";
if(days<=274&&days>244)
x="Sep";
if(days<=304&&days>274)
x="Oct";
if(days<=335&&days>304)
x="Nov";
if(days<=366&&days>335)
x="Dec";
}
else{
if(days<=31)
x="Jan";
if(days<=59&&days>31)
x="Feb";
if(days<=90&&days>59)
x="Mar";
if(days<=120&&days>90)
x="Apr";
if(days<=151&&days>120)
x="May";
if(days<=181&&days>151)
x="Jun";
if(days<=212&&days>181)
x="Jul";
if(days<=243&&days>212)
x="Aug";
if(days<=273&&days>243)
x="Sep";
if(days<=303&&days>273)
x="Oct";
if(days<=334&&days>303)
x="Nov";
if(days<=365&&days>334)
x="Dec";
}
returnx;
}
publicstaticlongcDate(longn){
longdays=n/1000/3600/24;
longi,x=0;
for(i=1970;i
days=days-365;
if(leapYear(i))
days--;
}
if(leapYear(cYear(n))){
if(days<=31)
x=31-days;
if(days<=60&&days>31)
x=60-days;
if(days<=91&&days>60)
x=91-days;
if(days<=121&&days>91)
x=121-days;
if(days<=152&&days>121)
x=152-days;
if(days<=182&&days>152)
x=182-days;
if(days<=213&&days>182)
x=213-days;
if(days<=244&&days>213)
x=244-days;
if(days<=274&&days>244)
x=274-days;
if(days<=304&&days>274)
x=304-days;
if(days<=335&&days>304)
x=335-days;
if(days<=366&&days>335)
x=366-days;
}
else{
if(days<=31)
x=31-days;
if(days<=59&&days>31)
x=59-days;
if(days<=90&&days>59)
x=90-days;
if(days<=120&&days>90)
x=120-days;
if(days<=151&&days>120)
x=151-days;
if(days<=181&&days>151)
x=181-days;
if(days<=212&&days>181)
x=212-days;
if(days<=243&&days>212)
x=243-days;
if(days<=273&&days>243)
x=273-days;
if(days<=303&&days>273)
x=303-days;
if(days<=334&&days>303)
x=334-days;
if(days<=365&&days>334)
x=365-days;
}
returnx;
}
publicstaticlongcHour(longn){
longhours=(n/1000/3600+8)%24;
returnhours;
}
publicstaticlongcMin(longn){
longhours=n/1000/60%60;
returnhours;
}
publicstaticlongcSec(longn){
longhours=n/1000%60;
returnhours;
}
publicstaticbooleanleapYear(longn){
if(n%4==0&&(n%100!=0))
returntrue;
elseif(n%400==0)
returntrue;
else
returnfalse;
}
}