Java面向对象(三)

1.1构造方法的定义
构造方法概念:

  • 构造反法也叫Java的一种特殊的函数,函数名相同,无返回值
    作用:

  • 创建对象

  • 为成员变量赋值
    构造方法格式:

  • 方法名与类名相同

  • 没有返回值类型

  • 没有具体的返回值
    调用构造函数

  • 通过new关键字调用 格式: 类名对象名 = new 构造方法(……);

    public class Demo01 {
        public static void main(String[] args) {
            Person person = new Person("张三", 18);
        }
    }
    class Person{
        private String name;
        private int age;
    	//无参构造
        public Person() { }
    	//带参构造
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }	
    

构造方法的注意事项:

  • 如果我们没有给出构造方法,系统提供一个默认的无参构造

  • 如果给出有参构造,系统不会再提供无参构造供使用,如想使用无参构造需手动自己提供。

  • 过早方法也是可以重载的。

  • 不可以写return语句
    一般函数不能调用构造函数,只有构造函数才能调用构造函数

    public class Student {
        private String name;
        private int age;
    public Student(){}
    public Student(int age) {
        this.age = age;
    }
    public Student(String name) {
        this.name = name;
    }
    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    	}
    }
    

    成员变量赋值:
    1.setXxx()方法
    2.需要构造函数

    1.2构造方法之间的相互调用
    注意:

    • 构造方法不能进行递归调用!
    • 内部调用构造方法的时候使用this关键字

2.0标准类的定义

  • private 修饰的成员变量

  • 无参构造方法

  • 带参构造方法

  • 普通成员方法

  • 操作成员变量 getXxx和setXxx方法
    public class Person{
    private String name;
    private int age;

        public Person() {
        }
    
        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;
        }
    }
    

容器存储自定义类型对象

数组存储:

public class Demo02 {
    public static void main(String[] args) {
        ArrayList<Emp> list = new ArrayList<>();
        list.add(new Emp("张三",1200,"扫地的"));
        list.add(new Emp("张四",1600,"项目经理"));
        list.add(new Emp("张五", 1800, "产品"));
        int sum = 0;
        for (Emp emp : list) {
            sum += emp.getSalary();
        }
        System.out.println("公司一个月所有员工工资的总支出:"+sum);
    }
}

class Emp {
    private String name;
    private int salary;
    private String job;

    public Emp() {
    }

    public Emp(String name, int salary, String job) {
        this.name = name;
        this.salary = salary;
        this.job = job;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值