目录
构造方法
构造方法是一种特殊的方法
作用:创建对象
功能:主要是完成对象数据的初始化
public class Student {
修饰符 类的名称(参数) {
// 修饰符 一般默认的情况下 是public 修饰符
}
}
Student.java如下:
package com.面向对象.Demo3;
public class Student {
private String name;
private int age;
/**
* 注意:构造方法 方法的名称一定与类的名称一样
* 构造方法
* - 无参构造方法
* - 有参构造方法
*/
public Student() {
System.out.println("Student 已经开始初始化啦!");
}
public String show() {
return name + "-" + age;
}
}
StudentDemo.java如下:
package com.面向对象.Demo3;
public class StudentDemo {
public static void main(String[] args) {
// new 执行到 构造方法 构造方法中做一些初始化操作
Student s1 = new Student(); // Student 已经开始初始化啦!
String show = s1.show();
System.out.println(show); // null-0
}
}
注意事项
构造方法的创建
- 如果没有定义构造方法,系统将给出一个默认的无参构造方法
- 如果定义了构造方法,系统将不再提供默认的构造方法
方法重载:
构造方法名称相同但是参数列表不同 就是重载。
注意:如果自定义了带参数的构造方法,还要使用无参构造方法,就必须要写一个无参构造方法
作用:主要给我们对象中的 成员变量 赋值的操作
Student.java
package com.面向对象.Demo3;
public class Student {
private String name;
private int age;
/**
* 注意:构造方法 方法的名称一定与类的名称一样
* 如果没有定义构造方法,系统将给出一个默认的无参构造方法
* 如果定义了构造方法,系统将不再提供默认的构造方法
* 构造方法
* - 无参构造方法
* - 有参构造方法
* 注意:如果自定义了带参数的构造方法,还要使用无参构造方法,就必须要写一个无参构造方法
*/
// 无参构造方法
public Student() {
System.out.println("Student 已经开始初始化啦!");
}
// 有参构造方法
public Student(String name) {
this.name = name;
}
// 方法重载
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// 方法重载
public Student(int age) {
this.age = age;
}
public String show() {
return name + "-" + age;
}
}
StudentDemo.java
package com.面向对象.Demo3;
public class StudentDemo {
public static void main(String[] args) {
// new 执行到 构造方法 构造方法中做一些初始化操作
Student s1 = new Student(); //无参构造方法 执行无参构造方法 输出:Student 已经开始初始化啦!
System.out.println("s1:"+s1.show()); // s1:null-0
Student s2 = new Student("mayikt"); //有参构造方法
System.out.println("s2:"+s2.show()); // s2:mayikt-0
Student s3 = new Student("mayikt",21);
System.out.println("s3:"+s3.show()); // s3:mayikt-21
Student s4 = new Student(21);
System.out.println("s4:"+s4.show()); // s4:null-21
}
}
构造方法——标准类的制作
- 成员变量
- 使用 private 修饰
- 构造方法
- 提供一个无参构造方法
- 提供一个带多个参数的构造方法
- 成员方法
- 提供每一个成员变量对应的 setXxx() / getXxx()
- 提供一个显示对象信息的 toString()
- (测试类)创建对象并为其成员变量赋值的两种方式
- 无参构造方法创建对象后使用 setXxx() 赋值
- 使用带参数构造方法直接创建带有属性值的对象
Student.java
package com.面向对象.Demo4;
public class Student {
/**
* 1. 成员变量
* 使用 private 修饰
*/
private String name;
private int age;
/**
* 2. 定义无参构造和有参构造函数
*/
public Student() {
System.out.println("无参构造函数...");
}
public Student(String name, int age) {
System.out.println("通过有参构造构造函数给成员属性赋值...");
this.name = name;
this.age = age;
}
/**
* 3.成员方法 提供 get/set方法
*/
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;
}
/**
* 返回该类中所有的成员变量值
* @return name-age
*/
public String toString() {
return name + "-" + age;
}
}
上方的内容可以自动生成
StudentDemo.java
package com.面向对象.Demo4;
public class StudentDemo {
public static void main(String[] args) {
// 演示就是通过 set 方法给我们成员属性赋值
Student s1 = new Student(); // 无参构造函数...
s1.setName("mayikt");
s1.setAge(21);
System.out.println(s1.toString()); // mayikt-21
// 通过有参构造函数 赋值
Student s2 = new Student("meite",24);
System.out.println(s2.toString()); // meite-24
}
}
下一篇文章:this使用细节