# 深入构造器
## 课堂代码
~~~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-内部类详解
