星期一, 11月 28, 2005

Homewrok 11-21

import java.io.*;

public class DateTry {
private String month;
private int day;
private int year;
public void readInput() throws IOException {
System.out.println("Enter month:");
BufferedReader keyinMonth = new BufferedReader(new InputStreamReader(
System.in));
month = keyinMonth.readLine();
System.out.println("Enter day:");
BufferedReader keyinDay = new BufferedReader(new InputStreamReader(
System.in));
day = Integer.parseInt(keyinDay.readLine());
System.out.println("Enter year:");
BufferedReader keyinYear = new BufferedReader(new InputStreamReader(
System.in));
year = Integer.parseInt(keyinYear.readLine());
}

public void setDate() {
month = "June";
day = 17;
year = 2005;
}

public int getDay() {
return day;
}

public int getYear() {
return year;
}

public int getMonth() {
if (month.equalsIgnoreCase("January")) {
return 1;
} else if (month.equalsIgnoreCase("February")) {
return 2;
} else if (month.equalsIgnoreCase("March")) {
return 3;
} else if (month.equalsIgnoreCase("April")) {
return 4;
} else if (month.equalsIgnoreCase("May")) {
return 5;
} else if (month.equalsIgnoreCase("June")) {
return 6;
} else if (month.equalsIgnoreCase("July")) {
return 7;
} else if (month.equalsIgnoreCase("August")) {
return 8;
} else if (month.equalsIgnoreCase("September")) {
return 9;
} else if (month.equalsIgnoreCase("October")) {
return 10;
} else if (month.equalsIgnoreCase("November")) {
return 11;
} else if (month.equalsIgnoreCase("December")) {
return 12;
} else {
System.out.println("FATAL ERROR");
System.exit(0);
return 0;
}
}
}

---------------------------------------------------------------------------------------------
import java.io.IOException;
public class DateTryDemo
{
public static void main(String[] args)throws IOException
{
DateTry date =new DateTry();
date.setDate();
int newDay= date.getDay();
int newMonth= date.getMonth();
int newYear= date.getYear();
System.out.println("Date is "+newMonth+"/ "+newDay+"/ "+newYear+".");
date.readInput();
int nDay= date.getDay();
int nMonth=date.getMonth();
int nYear=date.getYear();
System.out.println("Date is "+nMonth+"/ "+nDay+"/ "+nYear+".");
System.out.println(date.month);
}
}
4. At the last line of your program, add System.out.println(date.month);
and see what happens. Why?
因為month為private , 所以只有month所在之class可使用。


星期一, 11月 21, 2005

Class Definition

public class DateFirstTry
{
public String month;
public int day;
public int year;
public void writeOutput()
{
System.out.println(month + " /" + day + "/ " + year);
}
public void makeItNewYears()
{
month = "January";
day = 1;
}
}


----------------------------------------------------------------------------------------------
public class DateFirstTryDemo
{
public static void main(String[] args)
{
DateFirstTry date1,date2;
date1 = new DateFirstTry();
date2 = new DateFirstTry();
date1.month = "December";
date1.day = 31;
date1.year = 2006;
System.out.println("date1:");
date1.writeOutput();
date1.makeItNewYears();
System.out.println("NewYear of date1 is:");
date1.writeOutput();
date2.month = "July";
date2.day = 4;
date2.year = 1776;
System.out.println("date2:");
date2.writeOutput();
date2.makeItNewYears();
System.out.println("NewYears of date2 is:");
date2.writeOutput();
}
}

String Comparison

public class StringComparison
{
public static void main(String[] args) {
String s1 = "I come from CYCU.";
String s2 = "I come from cycu.";
if (s1.equals(s2)) {
System.out.println("they are equal strings.");
} else
System.out.println("they are not equal strings.");
}
}











Can we do it with "=="?

Ans:NO,都是object比較其address是否相同
What is the result for case-sensitive comparison?
Ans:區分字串的大小寫,只要大小寫不同,則視為不同字串
What about case-insensitive?
Ans:不區分大小寫