進階程式設計果然比較複雜點,很多東西都好抽象喔="=
聽了都霧颯颯
看老師都很賣力的在講解,不認真聽就很對不起他了!
老師說的比我自己看的還簡單,老師果然厲害!
下面是我自己打的,註解也是自己寫上去的,加減參考看看吧!
雖然這次考試分數不是很好看,但是我會越挫越勇的!!哇哈哈哈~
自己學多少懂多少才是王道!哎呀~廢話這麼多分數還是一樣低
第一題
=================程式內容=================
public class test1{
public static void main(String[] args){
String str = "Dot^saw^I^was^Tod";
//str輸入字串
int len = str.indexOf('I')+1;
//抓出str字串中的"I"位置(8+1=len)
char[] tempCharArray = new char[len];
//定義tempCharArray為字元陣列,長度為len的值(9)
char[] charArray = new char[len];
//定筧harArray為字元陣列,長度為len的值(9)
for (int i = 0; i< len; i++) tempCharArray[i] = str.charAt(i);
//使用charAt取出str字串的字元,把字元放入tempCharArray陣列裡
for (int j = 0; j<len; j++) charArray[j] = tempCharArray[len-1-j];
//把tempCharArray陣列裡的字元從len-1-j倒著取出字元放入charArray陣列裡
String resultStr = new String (charArray);
//單純把charArray陣列裡的字元轉成字串後放入resultStr
System.out.println(resultStr);
//印出JresultStr 答案為 "I^was^toD"
}
}
=============執行後結果範例=============
I^was^toD
Finished executing
第二題
=================程式內容=================
public class test2{
private String nickname;
public test2(String nickname) {this.nickname =nickname;}
//test2的建構子
public String myCat() {return nickname +" is my nickname";}
//主程式沒有myCat.myCat(),所以這行程式是障眼法!!
public String toString() {return "My nickname is "+nickname;}
//沒有這行程式會印出"test2@de6ced"
//"test2@de6ced"就是該物件所屬類別名稱+@+該物件hash code的16進位值
//有這行程式toString()為boject物件toString顧名思義就是轉成字串
public static void main(String[] args){
test2 myCat= new test2("Java");
//使用test2為資料型態定義myCat,new值"Java"給myCat
System.out.println(myCat);
//印出myCat 答案為"My nickname is Java"
}
}
=============執行後結果範例=============
My nickname is Java
Finished executing
第三題
=================程式內容=================
public class test3{
public static void main(String[] args){
String a = new String("Java 2");
//記憶體new一個位址空間儲存"Java 2"傳給a
StringBuffer b =new StringBuffer("Java 2");
//記憶體new一個位址空間儲存"Java 2"傳給b
String c = b.toString();
//把b的內容轉成字串傳給c
if (a.equals(c))System.out.println("ture");
//用equals比較a和c的內容
else System.out.println("false");
if (a == c) System.out.println("ture");
//用==比較a和c的位址
else System.out.println("flase");
}
}
=============執行後結果範例=============
ture
flase
Finished executing
第四題
=================程式內容=================
public class test4{
public static void main(String[] args){
String s1 = "A" , s2 = " B ";
StringBuffer s3 = new StringBuffer("C");
s2.trim();
//用trim清除s2字串的空格,但是因為s2宣告為String,所以不能修改
s3.append("D");
//用append來連接s3的字串,因s3為StringBuffer,所以可以更改為"CD"
System.out.print(s1 + s2 +s3);
//印出答案為"A B CD"
}
}
=============執行後結果範例=============
A B CDFinished executing
第五題
=================程式內容=================
public class test5{
static void m1(StringBuffer s1) {
s1.append("B");
//使用append後,s1的值變為"AB"。(PS.append適用在StringBuffer)
System.out.print(s1);}
static void m2(String s2) {
s2 = s2.concat("C");
//使用concat後,s2的值變為"ABC"。(PS.concat適用在String)
System.out.print(s2);}
public static void main(String[] args){
StringBuffer s1 = new StringBuffer("A");
//s1宣告成StringBuffer,new一個值"A"
m1(s1);
//呼叫m1類別方法傳s1="A",經過這行程式後s1變成"AB"
String s2 = s1.toString();
//把s1"AB"轉成字串傳給s2,因為宣告為String所以S2
m2(s2);
System.out.println(s1+s2);
}
}
=============執行後結果範例=============
ABABCABAB
Finished executing
第八題
=================程式內容=================
class Super{
public int i = 10;
//類別變數編譯前決定
public String show1() {return "super.show1";}
//實例方法run time決定
public static String show2() {return "super.show2";}
//類別方法編譯前決定
}
class sub extends Super{
public int i = 20;
//類別變數編譯前決定
public String show1() {return "sub.show1";}
//實例方法run time決定
public static String show2() {return "sub.show2";}
//類別方法編譯前決定
}
public class test8{
public static void main(String[] args){
sub x = new sub();
Super y = new sub();
System.out.println("x.i= "+x.i+" "+x.show1());
System.out.println("y.i= "+y.i+" "+y.show2());
}
}
//實例方法:是run time決定。簡單說就是(public String show(){})這些。
//類別方法:是編譯前決定。簡單說就是有加static和類別變數(int x;)這些。
//A x = new B(); 編譯前就是看A,run time就是看B
=============執行後結果範例=============
x.i= 20 sub.show1
y.i= 10 super.show2
Finished executing
第十題
=================程式內容=================
abstract class A{//抽象類別A
abstract public void draw();
//抽象實例方法,有如範本。
//宣告為abstract就不能{Sys...};,就是不能有內容。
}
class B extends A{
public void draw(){
System.out.println("B");
}
}
class C extends A{
public void draw(){
System.out.println("C");
}
}
public class test10{
public static void main(String[] args){
A x;
x= new B();
//呼叫B類別,就使用B的類別(有如覆寫父類別)
x.draw();
x = new C();
//呼叫C類別,就使用C的類別
x.draw();
}
}
=============執行後結果範例=============
B
C
Finished executing
※有錯誤,歡迎回應唷︿︿!!
聽了都霧颯颯
看老師都很賣力的在講解,不認真聽就很對不起他了!
老師說的比我自己看的還簡單,老師果然厲害!
下面是我自己打的,註解也是自己寫上去的,加減參考看看吧!
雖然這次考試分數不是很好看,但是我會越挫越勇的!!哇哈哈哈~
自己學多少懂多少才是王道!哎呀~廢話這麼多分數還是一樣低
第一題
=================程式內容=================
public class test1{
public static void main(String[] args){
String str = "Dot^saw^I^was^Tod";
//str輸入字串
int len = str.indexOf('I')+1;
//抓出str字串中的"I"位置(8+1=len)
char[] tempCharArray = new char[len];
//定義tempCharArray為字元陣列,長度為len的值(9)
char[] charArray = new char[len];
//定筧harArray為字元陣列,長度為len的值(9)
for (int i = 0; i< len; i++) tempCharArray[i] = str.charAt(i);
//使用charAt取出str字串的字元,把字元放入tempCharArray陣列裡
for (int j = 0; j<len; j++) charArray[j] = tempCharArray[len-1-j];
//把tempCharArray陣列裡的字元從len-1-j倒著取出字元放入charArray陣列裡
String resultStr = new String (charArray);
//單純把charArray陣列裡的字元轉成字串後放入resultStr
System.out.println(resultStr);
//印出JresultStr 答案為 "I^was^toD"
}
}
=============執行後結果範例=============
I^was^toD
Finished executing
第二題
=================程式內容=================
public class test2{
private String nickname;
public test2(String nickname) {this.nickname =nickname;}
//test2的建構子
public String myCat() {return nickname +" is my nickname";}
//主程式沒有myCat.myCat(),所以這行程式是障眼法!!
public String toString() {return "My nickname is "+nickname;}
//沒有這行程式會印出"test2@de6ced"
//"test2@de6ced"就是該物件所屬類別名稱+@+該物件hash code的16進位值
//有這行程式toString()為boject物件toString顧名思義就是轉成字串
public static void main(String[] args){
test2 myCat= new test2("Java");
//使用test2為資料型態定義myCat,new值"Java"給myCat
System.out.println(myCat);
//印出myCat 答案為"My nickname is Java"
}
}
=============執行後結果範例=============
My nickname is Java
Finished executing
第三題
=================程式內容=================
public class test3{
public static void main(String[] args){
String a = new String("Java 2");
//記憶體new一個位址空間儲存"Java 2"傳給a
StringBuffer b =new StringBuffer("Java 2");
//記憶體new一個位址空間儲存"Java 2"傳給b
String c = b.toString();
//把b的內容轉成字串傳給c
if (a.equals(c))System.out.println("ture");
//用equals比較a和c的內容
else System.out.println("false");
if (a == c) System.out.println("ture");
//用==比較a和c的位址
else System.out.println("flase");
}
}
=============執行後結果範例=============
ture
flase
Finished executing
第四題
=================程式內容=================
public class test4{
public static void main(String[] args){
String s1 = "A" , s2 = " B ";
StringBuffer s3 = new StringBuffer("C");
s2.trim();
//用trim清除s2字串的空格,但是因為s2宣告為String,所以不能修改
s3.append("D");
//用append來連接s3的字串,因s3為StringBuffer,所以可以更改為"CD"
System.out.print(s1 + s2 +s3);
//印出答案為"A B CD"
}
}
=============執行後結果範例=============
A B CDFinished executing
第五題
=================程式內容=================
public class test5{
static void m1(StringBuffer s1) {
s1.append("B");
//使用append後,s1的值變為"AB"。(PS.append適用在StringBuffer)
System.out.print(s1);}
static void m2(String s2) {
s2 = s2.concat("C");
//使用concat後,s2的值變為"ABC"。(PS.concat適用在String)
System.out.print(s2);}
public static void main(String[] args){
StringBuffer s1 = new StringBuffer("A");
//s1宣告成StringBuffer,new一個值"A"
m1(s1);
//呼叫m1類別方法傳s1="A",經過這行程式後s1變成"AB"
String s2 = s1.toString();
//把s1"AB"轉成字串傳給s2,因為宣告為String所以S2
m2(s2);
System.out.println(s1+s2);
}
}
=============執行後結果範例=============
ABABCABAB
Finished executing
第八題
=================程式內容=================
class Super{
public int i = 10;
//類別變數編譯前決定
public String show1() {return "super.show1";}
//實例方法run time決定
public static String show2() {return "super.show2";}
//類別方法編譯前決定
}
class sub extends Super{
public int i = 20;
//類別變數編譯前決定
public String show1() {return "sub.show1";}
//實例方法run time決定
public static String show2() {return "sub.show2";}
//類別方法編譯前決定
}
public class test8{
public static void main(String[] args){
sub x = new sub();
Super y = new sub();
System.out.println("x.i= "+x.i+" "+x.show1());
System.out.println("y.i= "+y.i+" "+y.show2());
}
}
//實例方法:是run time決定。簡單說就是(public String show(){})這些。
//類別方法:是編譯前決定。簡單說就是有加static和類別變數(int x;)這些。
//A x = new B(); 編譯前就是看A,run time就是看B
=============執行後結果範例=============
x.i= 20 sub.show1
y.i= 10 super.show2
Finished executing
第十題
=================程式內容=================
abstract class A{//抽象類別A
abstract public void draw();
//抽象實例方法,有如範本。
//宣告為abstract就不能{Sys...};,就是不能有內容。
}
class B extends A{
public void draw(){
System.out.println("B");
}
}
class C extends A{
public void draw(){
System.out.println("C");
}
}
public class test10{
public static void main(String[] args){
A x;
x= new B();
//呼叫B類別,就使用B的類別(有如覆寫父類別)
x.draw();
x = new C();
//呼叫C類別,就使用C的類別
x.draw();
}
}
=============執行後結果範例=============
B
C
Finished executing
※有錯誤,歡迎回應唷︿︿!!
沒有留言:
張貼留言