# 深入構造器
## 課堂代碼
~~~java
public class Person {
private String name;
private int age;
private String sex;
private String work;
private String race;
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getWork() {
return work;
}
public void setWork(String work) {
this.work = work;
}
public String getRace() {
return race;
}
public void setRace(String race) {
this.race = race;
}
//在一個類中,是不允許出現方法簽名相同的方法的
/**
* 一下兩個方法實際上執行了方法的重載
* 通俗來講:就是幾個方法,方法名一樣,形參不同
* @param foodName
* @param count
*/
public void eatFood(String foodName, int count) {
System.out.println("is eating" + foodName);
}
public String eatFood(String foodName,String count) {
return foodName;
}
public Person() {
}
/**
* 顯式的創建出有參的構造器,編譯器就不會自動的添加無參構造器
* @param x
* @param y
*/
public Person(String name, int age) {
this.name = name;//通過傳入的參數,設置成員變量的值
this.age = age;
}
//使用this(param)調用其他的構造器
public Person(String name, int age, String sex) {
//this();//沒有參數,this()指的是本類的無參構造器
this(name,age);//所以具體this(param)指的是誰,是由傳入的參數類型和個數決定的
this.sex = sex;
}
/**
* 構造器的重載
* @param name
* @param age
* @param sex
* @param work
* @param race
*/
public Person(String name, int age, String sex, String work, String race) {
this(name, age, sex);
this.work = work;
this.race = race;
}
}
~~~
~~~java
public class Demo {
private int a;//只能在本類中被訪問
protected int b;
public int c;
int d;
public static void main(String[] args) {
String a = "abc";
String b = new String("abc");
System.out.println(a);
System.out.println(b);
System.out.println(a == b);
System.out.println(a.equals(b));
//本類中
Demo demo = new Demo();
demo.a = 10;//private
demo.b = 10;//protected
demo.c = 10;//public
demo.d = 10;//default
}
}
~~~
~~~java
public class Test {
public static void main(String[] args) {
//本包中的類中
Demo demo = new Demo();
demo.b = 10;//protected
demo.c = 10;//public
demo.d = 10;//default
//demo.a = 10; private
Person person = new Person();
Person person1 = new Person("徐春林", 24, "男");
System.out.println(person1.getName());
System.out.println(person1.getAge());
System.out.println(person1.getSex());
person1.eatFood("x", 1);
}
}
~~~
- 課程開始
- 第一課20191008
- 第二課20191009
- HTML
- CSS
- CSS第一課
- CSS第二課
- CSS第三課
- CSS第四課
- CSS第五課
- JavaScript
- Js第一課
- Js第二課
- Js第三課
- Js第四課
- Js第五課
- Js第六課
- Js第七課
- Js-事件模型
- Js-2019-10-31-標準庫
- Js-2019-11-01- 標準庫
- Js-2019-11-01-Json
- Js-2019-11-01-對象的創建
- Js-2019-11-04-this的使用
- Js-2019-11-05-storage與異常
- Js-2019-11-05-BOM與補充知識點
- Js-2019-11-06-正則表達式和計時器
- jQuery
- jQuery-2019-11-13-初識jQuery
- jQuery-2019-11-14-jQuery節點操作
- jQuery-2019-11-15-jQuery節點操作二
- jQuery-2019-11-16-jQuery效果與動畫
- Java
- Java-2019-11-27-變量直接量數據格式運算符
- Java-2019-11-28-流程控制
- Java-2019-12-02-數組
- Java-2019-12-04 面向對象
- Java-2019-12-05-封裝
- Java-2019-12-06-深入構造器
- Java-2019-12-09-繼承
- Java-2019-12-10-多態
- Java-2019-12-10-包裝類
- Java-2019-12-11-final修飾符
- Java-2019-12-11-包裝類
- Java-2019-12-11-接口
- java-2019-12-13-設計模式
- Java-2019-12-16-集合框架
- Java-2019-12-18-集合排序
- Java-2019-12-23-常用類學習
- Java-2019-12-25-異常處理
- Java-2019-12-31-內部類詳解