构造方法

简介: 构造方法

构造方法

  • 作用:用于对对象的数据进行初始化
  • 格式:
  • A:方法名和类名相同
  • B:没有返回值类型,连void都不能有
  • C:没有返回值
  • 思考题:构造方法中可不可以有return语句呢?
  • 可以。而是我们写成这个样子就oK了:return; 其实,在任何的void类型的方法的最后你都可以写上:return;
  • 构造方法的注意事项
  • A:如果我们没写构造方法,系统将提供一个默认的无参构造方法
  • B:如果我们给出了构造方法,系统将不再提供默认构造方法 如果这个时候,我们要使用无参构造方法,就必须自己给出。 推荐:永远手动自己给出无参构造方法。
  • 给成员变量赋值的方式
  • A:setxxx()
  • B:带参构造方法
  • 标准案例
class Student{
  private String name;
  private int age;
  public Student(){}
  public Student (String name,int age){
    this.name = name;
    this.name = 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;
  }
}
//测试
class StudentDemo{
  public static void main(String [] args){
        //方式1
        Student s1 = new Student();
        s1.setName("武松");
        s1.setAge(25);
        System.out.println(s1.getName()+"--"+s1.getAge());
        //方式2
        Student s2 = new Student("武松",25);
         System.out.println(s2.getName()+"--"+s2.getAge());
    }    
}

代码:Student s = new Student();做了哪些事情?

  • 把Student.class文件加载到内存
  • 在栈内存为s开辟空间
  • 在堆内存为学生对象申请空间
  • 给学生的成员变量进行默认初始化。null,0
  • 给学生的成员变量进行显示初始化。武松,25
  • 通过构造方法给成员变量进行初始化。武松,25
  • 对象构造完毕,把地址赋值给s变量

static关键字

1.静态的意思。可以修饰成员变量和成员方法。

2.静态的特点:

A:随着类的加载而加载

B:优先与对象存在

C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据。

D:可以通过类名调用 既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。

静态的内存图 静态的内容在方法区的静态区 (暂定

3.静态的注意事项:

A:在静态方法中没有this对象

B:静态只能访问静态

静态变量和成员变量的区别

A:所属不同

静态变量:属于类,类变量

成员变量:属于对象,对象变量,实例变量

B:内存位置不同

静态变量:方法区的静态区

成员变量:堆内存

C:生命周期不同

静态变量:静态变量是随着类的加载而加载,随着类的消失而消失

成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失

D:调用不同

静态变量:可以通过对象名调用,也可以通过类名调用

成员变量:只能通过对象名调用

main方法是静态的

  • public:权限最大
  • static:不用创建对象调用
  • void:返回值给vm没有意义
  • main:就是一个常见的名称。
  • String[] args:可以接收数据,
  • 不管接受什么都是当做字符串类型
  • 提供程序的灵活性 格式:java MainDemo hello world java
    java MainDemo 10 20 30


相关文章
|
6月前
构造器(有参、无参)
构造器(有参、无参)
|
6月前
类的无参方法
类的无参方法
|
Java
什么是构造器?
什么是构造器?
98 0
为什么子类会调用父类无参的构造函数
为什么子类会调用父类无参的构造函数
|
Java
构造方法
构造方法
85 0
Zp
父类静态代码块、非静态代码块、构造方法、子类静态代码块、子类非静态代码块、子类构造方法执行顺序
父类静态代码块、非静态代码块、构造方法、子类静态代码块、子类非静态代码块、子类构造方法执行顺序
Zp
73 0
|
Java C++
C++类中在构造器中调用本类的另外构造器
C++类中在构造器中调用本类的另外构造器
98 0
|
Java C#
C# 构造方法
应用场景:1. 初始化(加载)对象 2. 初始化(加载)一些数据 特点:默认有一个无参构造方法
87 0
|
Python
8.2 类的构造器
class ren():     '''this class is about ren class。类的说明,使用三个单引号'''     def __init__(self,name,sex):        # 构造器         # 注意到 __init__ 方法的...
672 0