class Person{//屬性的定義private String name;private int age;private char sex;public Person(){}public Person(String name){this.name = name;}public void setName(String name){this.name = name;}public String getName(){return name;}public void setAge(int age){this.age = age;}public int getAge(){return age;}public void setSex(char sex){this.sex = sex;}public char getSex(){return sex;}//方法的定義public void show(){System.out.println("我是"+name+",今年"+age+"歲了,"+"是一個"+sex+"人");}
}
public class Notes{public static void main(String []args){Person p = new Person();p.setName("張三");p.setSex('男');p.setAge(10);p.show();Person q = new Person("李四");q.setSex('女');q.setAge(10);q.show();}
}
4.方法的重載(overloading Method) 條件:方法名相同,參數(shù)不同
class Person{//屬性的定義private String name;private int age;private char sex;public Person(){}public Person(String name){this.name = name;}public void setName(String name){this.name = name;}public String getName(){return name;}public void setAge(int age){this.age = age;}public int getAge(){return age;}public void setSex(char sex){this.sex = sex;}public char getSex(){return sex;}//方法的定義public void show(){System.out.println("我是"+name+",今年"+age+"歲了,"+"是一個"+sex+"人,我的伴侶是李四");}public void show(String name){System.out.println("我是"+name+",今年"+age+"歲了,"+"是一個"+sex+"人,我的伴侶是"+name);}
}
public class Notes{public static void main(String []args){Person p = new Person();p.setName("張三");p.setSex('男');p.setAge(10);p.show();p.show("王五");}
}
5.匿名對象 1.沒有名稱 2.只能使用一次 3.直接在堆中開辟內(nèi)存 4.使用后被回收
class Person{//屬性的定義private String name = "張三";private int age = 10;private char sex = '男';public Person(){}public Person(String name){this.name = name;}public void setName(String name){this.name = name;}public String getName(){return name;}public void setAge(int age){this.age = age;}public int getAge(){return age;}public void setSex(char sex){this.sex = sex;}public char getSex(){return sex;}//方法的定義public void show(){System.out.println("我是"+name+",今年"+age+"歲了,"+"是一個"+sex+"人,我的伴侶是李四");}public void show(String name){System.out.println("我是"+name+",今年"+age+"歲了,"+"是一個"+sex+"人,我的伴侶是"+name);}
}
public class Notes{public static void main(String []args){new Person().show();}
}
6.String類的編譯期和運行期
public class Notes{public static void main(String []args){//情況一:trueString a = "s1";String a1 = "s"+1;//兩個常量連接System.out.println(a == a1);//情況二:falseString b = "s1";int bb = 1;String b1 = "s"+bb;//因為此處的bb為變量System.out.println(b == b1);//情況三:trueString c = "s1";final int cc = 1;//此處聲明了一個常量String c1 = "s" + cc;//在這里cc代表了一個常數(shù)System.out.println(c == c1);//情況四:falseString d = "s1";final int dd = getDD();//此處需要到運行期才可以確定String d1 = "s" + dd;System.out.println(d == d1);}public static int getDD(){return 1;}
}
7.String類的操作方法
//1.根據(jù)下標找字符
public class Notes{public static void main(String []args){String test = "i love java";char result = test.charAt(3);System.out.println("第4個字符是"+result);}
}
//2.字符串變字符數(shù)組
public class Notes{public static void main(String []args){String test = "i love java";char []result = test.toCharArray();for(char i:result)System.out.print(i+",");System.out.println();}
}
//3.字符串的截取
public class Notes{public static void main(String []args){String test = "i love java";String result = test.substring(6);System.out.println(result);result = test.substring(0,6);//包含起始位置不包含結(jié)束位置System.out.println(result);}
}
//4.字符串的拆分
public class Notes{public static void main(String []args){String test = "i love java";String []result = test.split(" ");for(String i:result)System.out.print(i+"|\t");System.out.println("\n==============");String result_1[] = test.split(" ",2);for(String i:result_1)System.out.print(i+"\t");System.out.println();}
}
//5.字符串的查找,替換,大小寫轉(zhuǎn)換,長度計算
public class Notes{public static void main(String []args){String test = " i love java ";Boolean b = test.contains("a");System.out.println(b);int index = test.indexOf("l");System.out.println(index);index = test.indexOf("java");//第一字母出現(xiàn)的位置,該單詞不存在返回-1System.out.println(index);int index_1 = test.lastIndexOf("a");//從后向前查找System.out.println(index_1);String result = test.toUpperCase();System.out.println(result);result = result.toLowerCase();System.out.println(result);b = test.isEmpty();System.out.println(b);result = test.concat(" too!"); System.out.println(result);int cnt = test.length();System.out.println(cnt);result = test.trim();System.out.println(result);result = test.replace(" ","-");System.out.println(result);}
}
8.值傳遞與引用傳遞
//1.值傳遞,String也可以這樣表示
public class Notes{public static void main(String []args){int b = 1;method(b); System.out.println(b);}public static void method(int c){c = 2;}
}
//2.方法傳遞
public class Notes{public static void main(String []args){Cat b = new Cat();b.age = 12;method(b); System.out.println(b.age);}public static void method(Cat c){c.age = 20;}
}
class Cat{int age = 10;
}
9.對象的一對一關(guān)系
public class Notes{public static void main(String [] args){Husband h = new Husband("張三",'男');Wife w = new Wife("李四",15);h.wife = w;w.husband = h;h.show();w.show();h.wife.show();w.husband.show();}
}class Husband{String name;char sex;Wife wife;//關(guān)聯(lián)是將對方的類作為屬性導(dǎo)入,關(guān)聯(lián)妻子類public Husband(){}public Husband(String name, char sex){this.name = name;this.sex = sex;}public void show(){System.out.println("我是"+name+",我的妻子是"+wife.name);}
}class Wife{//實際操作中應(yīng)該封裝String name;int age;Husband husband;//關(guān)聯(lián)是將對方的類作為屬性導(dǎo)入,關(guān)聯(lián)丈夫類public Wife(){}public Wife(String name, int age){this.name = name;this.age = age;}public void show(){System.out.println("我是"+name+",我的丈夫是"+husband.name);}
}
public class Notes{public static void main(String []args){Mistress m1 = new Mistress("張三");Mistress m2 = new Mistress("李四");m1.desc();m2.desc();Mistress.profession = "小三";//使用類名修改靜態(tài)屬性,常用方法m1.desc();m2.desc();Mistress.promosion();m1.desc();m2.desc();}
}class Mistress{String name;//String profession = "情人";static String profession = "情人";//變成靜態(tài)屬性,不屬于對象的屬性,屬于類; public Mistress(String name){this.name = name;}public void desc(){System.out.println("我的名字是"+name+",我的職業(yè)是"+profession);}//使用static關(guān)鍵字修飾一個方法,該方法屬于類,不屬于對象public static void promosion(){System.out.println("轉(zhuǎn)正了");profession = "主婦";}
}
*/ /** 13.蛋疼的數(shù)羊 靜態(tài)變量的使用 */ /*
public class Notes{public static void main(String []args){Sheep a = new Sheep();Sheep b = new Sheep();System.out.println(Sheep.cntSheep());}}
class Sheep{private String name;private int age;static int cnt = 0;public Sheep(){this("喜羊羊",10);}public Sheep(String name){this(name,10);}public Sheep(String name, int age){this.name = name;this.age = age;cnt++;}public static int cntSheep(){return cnt;}
}
14.對象數(shù)組的使用
import java.util.Arrays;
public class Notes{public static void main(String []args){MonkeyManager.add(new Monkey("悟空"));MonkeyManager.add(new Monkey("悟飯"));MonkeyManager.add(new Monkey("悟靜",'母'));MonkeyManager.add(new Monkey("淑敏",'母'));MonkeyManager.list();MonkeyManager.delete("悟空");System.out.println("==============");MonkeyManager.list(); System.out.println("==============");Monkey m = MonkeyManager.find("淑敏");m.print();System.out.println("==============");MonkeyManager.set(new Monkey("悟靜",'母'));MonkeyManager.list(); MonkeyManager.add(new Monkey("小紅",'母'));MonkeyManager.add(new Monkey("小白",'公'));MonkeyManager.add(new Monkey("小黑",'公'));System.out.println("==============");MonkeyManager.list(); }
}
class MonkeyManager{private static int cnt = 0;private static int n = 5;private static Monkey [] monkeys = new Monkey[n];public static void add(Monkey monkey){if(cnt >= n){int new_lenth = monkeys.length*3/2+1;monkeys = Arrays.copyOf(monkeys, new_lenth);}monkeys[cnt] = monkey;cnt++; }public static void list(){for(int i = 0; i < cnt; i++){monkeys[i].print();}}public static void delete(String name){for(int i = 0; i < cnt; i++){if(monkeys[i].getName().equals(name)){monkeys[i] = monkeys[cnt-1];monkeys[cnt-1] = null;cnt--;}}}public static Monkey find(String name){for(int i = 0; i < cnt; i++){if(monkeys[i].getName().equals(name)){return monkeys[i];}}return null;}public static void set(Monkey monkey){Monkey m = find(monkey.getName());m.setSex(monkey.getSex());}
}
class Monkey{private String name;private char sex;//省略get, set方法public Monkey(){this("齊齊",'公');}public Monkey(String name){this(name,'公');}public Monkey(String name, char sex){this.name = name;this.sex = sex;}public void setName(String name){this.name = name;}public String getName(){return name;}public void setSex(char sex){this.sex = sex;}public char getSex(){return sex;}public void print(){System.out.println("我是"+sex+"猴--"+name);}
}
public class Notes{public static void main(String [] name){Person man = new Man();//父類的引用指向子類對象,向上轉(zhuǎn)型man.say();Person women = new Women();women.say();Man m = (Man)man;//大轉(zhuǎn)小,強制轉(zhuǎn)換;m.say();//Man mm = (Man)women;//java.lang.ClassCastException類型轉(zhuǎn)換失敗,不能強轉(zhuǎn),運行失敗}
}
abstract class Person{private String name;public void setName(String name){this.name = name;}public String getName(){return name;}public abstract void say();
}
class Man extends Person{public void say(){System.out.println("人家是純爺們");}
}
class Women extends Person{public void say(){System.out.println("人家是女神");}
}
public class Notes{public static void main(String [] name){Person man = new Man();//父類的引用指向子類對象,向上轉(zhuǎn)型//man.say();say(man);Person women = new Women();//women.say();say(women);Man m = (Man)man;//大轉(zhuǎn)小,強制轉(zhuǎn)換;say(m);//m.say();//Man mm = (Man)women;//java.lang.ClassCastException類型轉(zhuǎn)換失敗,不能強轉(zhuǎn),運行失敗}public static void say(Person p){p.say();//判斷p是否是Women對象,是返回真if(p instanceof Women){Women w = (Women)p;w.getAngry();}}
}
abstract class Person{private String name;public void setName(String name){this.name = name;}public String getName(){return name;}public abstract void say();
}
class Man extends Person{public void say(){System.out.println("人家是純爺們");}
}
class Women extends Person{public void say(){System.out.println("人家是女神");}public void getAngry(){System.out.println("人家生氣了"); }
}
import java.util.Random;
public class Notes{public static void main(String []args){lingjiuPalace pl = new sheMale();pl.action();}
}abstract class lingjiuPalace{public void action(){if(competition()){//調(diào)用自身的方法形成框架System.out.println("恭喜你,進入靈鷲宮!");}else{System.out.println("抱歉,您失敗了!");}}public abstract boolean competition();
}
class sheMale extends lingjiuPalace{Random r = new Random();public boolean competition(){return r.nextBoolean();}
}