Java学习之面向对象四

1、构造方法的格式是什么?有哪些注意事项?

 权限修饰符 类名(参数列表){方法体}

 注意事项:

  构造方法没有返回值类型。也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束。

  构造方法名称必须和类型保持一致。

 构造方法没有具体的返回值。

2、构造方法可以重载吗? 里边可以有return语句吗?

可以重载 可以有return,但不能有返回。

3、给成员变量赋值有几种方式?有什么区别?

 get/set

 直接赋值

 带参构造器赋值

 初始化

 static 代码块赋值

 默认构造器赋值

4.编写一个完整的Person类,使用this关键字给成员变量进行赋值.

在测试类中测试

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    
}
/**
 * 编写一个完整的Person类,使用this关键字给成员变量进行赋值.
     在测试类中测试
 * @author vanguard
 *
 */
public class Test01 {
    public static void main(String[] args) {
        Person p = new Person("张三", 30);
        
        System.out.println(p.getName() + "---" +p.getAge());
    }
}

5、根据需求,完成如下代码(按照标准格式写),并在测试类中进行测试。

标准格式包含: 私有属性 无参构造 有参构造 setter 和getter 需求中的方法

需求一:

员工类Employee

属性:姓名name,工号id,工资salary

行为:显示所有成员信息的方法show()

需求二:

动物类Animal

属性:姓名name,年龄age

行为:吃饭eat,睡觉sleep

需求三:

人类Person

属性:姓名name,年龄age,性别gender

行为:学习study,睡觉sleep

/**
    员工类Employee
    属性:姓名name,工号id,工资salary 
    行为:显示所有成员信息的方法show()
 * @author vanguard
 *
 */
public class Employee {
    private String name;
    private String Id;
    private int salary;
    
    public Employee() {
        
    }
    
    public Employee(String name, String Id, int salary) {
        this.name = name;
        this.Id = Id;
        this.salary = salary;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return Id;
    }
    public void setId(String id) {
        Id = id;
    }
    public int getSalary() {
        return salary;
    }
    public void setSalary(int salary) {
        this.salary = salary;
    }
    
    public void show() {
        System.out.println(name + "---" + Id + "---" + salary);
    }
}
/**
 * 动物类Animal
     属性:姓名name,年龄age
     行为:吃饭eat,睡觉sleep
 * @author vanguard
 *
 */
public class Animal {
    private String name;
    private int age;
    
    public Animal() {}
    
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    public void eat() {
        System.out.println("动物吃饭");
    }
    
    public void sleep() {
        System.out.println("动物睡觉");
    }
    
}
/**
 * 动物类Animal
     属性:姓名name,年龄age
     行为:吃饭eat,睡觉sleep
 * @author vanguard
 *
 */
public class Animal {
    private String name;
    private int age;
    
    public Animal() {}
    
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    public void eat() {
        System.out.println("动物吃饭");
    }
    
    public void sleep() {
        System.out.println("动物睡觉");
    }
    
}
/**
 * 测试类
 * @author vanguard
 *
 */
public class Test {
    public static void main(String[] args) {
        Employee em = new Employee("张三", "001", 5000);
        em.show();
        
        Animal a = new Animal("小白", 2);
        a.eat();
        a.sleep();
        
        Person p = new Person("李四", 20, "男");
        p.study();
        p.sleep();
        
    }
}