###07.01_面向对象(构造方法Constructor概述和格式)(掌握)
* A:构造方法概述和作用
* 给对象的数据(属性)进行初始化
* B:构造方法格式特点
* a:方法名与类名相同(大小也要与类名一致)
* b:没有返回值类型,连void都没有
* c:没有具体的返回值return;
class Demo1_Constructor { //Constructor构造
public static void main(String[] args) {
Person p = new Person(); //在一创建对象的时候,系统就帮我调用了构造方法
//p.Person(); //构造方法不能用对象调用
p.show();
Person p2 = new Person(); //再次创建对象
p2.show();
}
}
/*
* A:构造方法概述和作用
* 给对象的数据(属性)进行初始化
* B:构造方法格式特点
* a:方法名与类名相同(大小也要与类名一致)
* b:没有返回值类型,连void都没有
* c:没有具体的返回值return;
*/
class Person {
private String name;
private int age;
//构造方法
public Person() {
//System.out.println("Hello World!");
//return; //构造方法也是有return语句的,格式是return;
name = "张三";
age = 23;
}
public void show() {
System.out.println(name + "..." + age);
}
}
###07.02_面向对象(构造方法的重载及注意事项)(掌握)
* A:案例演示
* 构造方法的重载
* 重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表
* B:构造方法注意事项
* a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
* b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
* 注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法
###07.03_面向对象(给成员变量赋值的两种方式的区别)
* A:setXxx()方法
* 修改属性值
* B:构造方法
* 给对象中属性进行初始化
class Demo3_Person {
public static void main(String[] args) {
Person p1 = new Person("张三",23);
//p1 = new Person("张天一",23); //这种方式看运行结果貌似是改名了,其实是将原对象变成垃圾
System.out.println(p1.getName() + "..." + p1.getAge());
System.out.println("--------------------");
Person p2 = new Person(); //空参构造创建对象
p2.setName("李四");
p2.setAge(24);
p2.setName("李鬼");
System.out.println(p2.getName() + "..." + p2.getAge());
}
}
/*
构造方法
给属性进行初始化
setXxx方法
修改属性值
这两种方式,在开发中用setXxx更多一些,因为比较灵活
*/
class Person {
private String name; //姓名
private int age; //年龄
public Person() { //空参构造
}
public Person(String name,int age) {//有参构造
this.name = name;
this.age = age;
}
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;
}
}
###07.04_面向对象(学生类的代码及测试)(掌握)
* A:案例演示
* 学生类:
* 成员变量:
* name,age
* 构造方法:
* 无参,带两个参
* 成员方法:
* getXxx()/setXxx()
* show():输出该类的所有成员变量值
class Demo4_Student {
public static void main(String[] args) {
Student s1 = new Student(); //使用空参构造
s1.setName("张三"); //设置姓名
s1.setAge(23); //设置年龄
System.out.println("我的姓名是:" + s1.getName() + ",我的年龄是:" + s1.getAge());
//getXxx()获取属性值,可以打印,也可以赋值给其他的变量,做其他的操作
Student s2 = new Student("李四",24);
s2.show(); //只是为了显示属性值
}
}
/*
* A:案例演示
* 学生类:
* 成员变量:
* name,age
* 构造方法:
* 无参,带两个参
* 成员方法:
* getXxx()/setXxx()
* show():输出该类的所有成员变量值
* B:给成员变量赋值:
* a:setXxx()方法
* b:构造方法
* C:输出成员变量值的方式:
* a:通过getXxx()分别获取然后拼接
* b:通过调用show()方法搞定
*/
class Student {
private String name; //姓名
private int age; //年龄
public Student(){} //空参构造
public Student(String name,int age) { //有参构造
this.name