构造方法
-
构造方法的概述和作用:创建对象,给对象的成员进行初始化
-
构造方法格式特点
2.1 方法名与类名相同
2.2 没有返回值类型,连void都没有
2.3 美与具体的返回值
-
构造方法注意事项
3.1 如果我们没有给出构造方法,系统将自动提供一个无参构造方法
3.2 如果我们给出了有参构造方法,系统将不再提供默认的无参构造方法。这个时候如果我 们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法。
3.3 给成员变量赋值的两种方式
a:setXxx()方法
b:构造方法
-
一个学生类的代码及测试
给成员变量赋值:
a:setXxx()方法
b:构造方法
输出成员变量值的方式:
a:通过getXxx()分别获取然后拼接
b:通过调用show()方法搞定
public class Student {
private String name;
private int age;
private char sex;
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 char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public Student() {
}
public Student(String name, int age, char sex){
this. name=name;
this.age=age;
this.sex=sex;
}
}
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("薇恩");
student.setAge(20);
student.setSex('女');
System.out.println(student.getName());
System.out.println(student.getAge());
System.out.println(student.getSex());
System.out.println("========================");
Student student1= new Student("亚索",22,'男');
System.out.println(student1.getName());
System.out.println(student1.getAge());
System.out.println(student1.getSex());
}
}
-
创建对象的步骤
Student s=new Student();
步骤:
1.加载Student.class文件进内存
2.在栈内存中为s开辟空间
3.在堆内存中为学生对象开辟空间
4.对学生对象的成员变量进行默认初始化
5.对学生对象的成员变量进行显示初始化
6.通过构造方法对学生对象的成员变量赋值
7.学生对象初始化完毕,把对象地址值赋给s
- 长方形案例练习,需求:定义一个长方形(Rectangle)类,定义求周长(length)和面积(area)的方法,然后定义一个测试类Test,进行测试。
public class Rectangle {
private int chang;
private int kuan;
public Rectangle(int chang,int kuan ){
this.chang=chang;
this.kuan=kuan;
}
public int length(){
return (chang+kuan )*2;
}
public int area(){
return chang*kuan ;
}
}
public class Test {
public static void main(String[] args) {
Rectangle r = new Rectangle(23,34);
System.out.println(r.length());
System.out.println(r.area());
}
}
-
static关键字
7.1 static的内存图解
7.2 static的关键字特点
a:随着类的加载而加载
b:优先于对象存在
c:别类中的所有对象共享
d:可以通过类名调用,也可以使用对象名调用。推荐使用类名调用
7.3 注意事项
a:静态方法中是没有this‘关键字的
b:静态方法只能访问静态成员变量和静态成员方法
7.4 静态变量和成员变量的区别
a:所属不同
静态变量属于类,所以也称类变量
成员变量属于对象,所以也称实例变量或对象变量
b:内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存
c:内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
d:调用不同
静态变量可以通过类名来调用,也可以通过对象调用,推荐使用类名调用’
c:内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
d:调用不同
静态变量可以通过类名来调用,也可以通过对象调用,推荐使用类名调用’
成员变量只能通过对象名调用