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;
}
}