其他分享
首页 > 其他分享> > 面向对象概念及构造器详解!

面向对象概念及构造器详解!

作者:互联网

面向对象

面向过程思想

面向对象思想

创建与初始化对象

使用new关键字创建对象

代码示例:类中只能有属性和方法

package com.oop.Demo02;

//学生类
public class Student {
    //属性:字段
    String name;
    int age;

    //方法
    //this代表当前的类,用于本类的方法中使用本类的属性
    public void study(){
        System.out.println(this.name+"在学习");
    }
}

我们在定义了类之后,要在main方法中去调用,这时候,我们就应该创建一个测试类,或者应用类,这个类用来调用这个项目中所有类的方法和属性,一个项目应该只存在一个main方法

eg:

package com.oop.Demo02;

//一个项目应该只存在一个main方法
public class Test {
    public static void main(String[] args) {
        //类是抽象的,需要实例化,通过new来实例化
        //类实例化后会返回自己的对象
        //student对象就是一个Student类的具体实例
        Student daughter=new Student();
        daughter.name="阿尼亚";
        daughter.age=5;
        System.out.println(daughter.name);
        System.out.println(daughter.age);
    }
}

输出:

阿尼亚
5

接下来我们看一下关于构造器

我们首先随便定义一个动物类Animal

Animal.java:

public class Animal {
    
}

然后在测试中实例化这个类,运行一下看

Application.java:

public class Application {
    public static void main(String[] args) {
        //new 实例化了一个对象
        Animal animal=new Animal();

    }
}

可以看出我们在上面的Animal类中是什么都没写的,然而实例化看一下class文件可以看出

Animal.class:

package com.oop.Demo02;

public class Animal {
    public Animal() {
    }
}

可以看出在class中已经生成了一个class文件

一个类中即使什么都不写,也会存在一个方法

而我们看一下无参构造和有参构造

上述,自动生成的方法就是一个无参构造方法,我们自己写一下看,

无参构造:

public class Animal {
    //属性 name
    String name;
    //无参构造
    public Animal() {
    }
}

调用一下无参构造的方法:

public class Application {
    public static void main(String[] args) {
        //new 实例化了一个对象
        Animal animal=new Animal();
        animal.name="bangde";
        System.out.println(animal.name);
    }
}

输出:

bangde

即使我们不加这个无参构造,输出也能得到自己想要的,因为上文说过编译器会自动生成一个午餐的构造方法。

有参构造:

public class Animal {
    //属性 name
    String name;

    //有参构造
    public Animal(String name) {
        this.name = name;
    }
}

加有参构造之后,我们可以看到,刚才实例化的对象,已经开始报错了!

插入图片:

那是因为,我们创建了有参构造方法之后,编译器便不会为我们生成无参的构造方法了,这时如果我们还想要有无参的构造方法,需要自己再写一个无参的构造方法!

public class Animal {
    //属性 name
    String name;

//    无参构造
    public Animal() {
    }

    public Animal(String name) {
        this.name = name;
    }
}

这是程序可以正常运行,那如果我们想调用无参的构造方法,只需,给方法传入对应的参数即可!

public class Application {
    public static void main(String[] args) {
        //new 实例化了一个对象
        Animal animal=new Animal();
        animal.name="邦德";
        System.out.println(animal.name);
        Animal animal2=new Animal("汪汪");
        System.out.println(animal2.name);

    }
}

当然,我们再idea中,也是有快捷键去生成有参和无参的构造方法的快捷键的。

当在类中定义过属性之后

只需,按住ALT+INSERT键,点击Constructor,然后选中想要创建有参构造方法的属性即可生成有参的构造方法,如果方法中想包含多个属性,按住ctrl键,然后点击多个即可!


如果想生成无参的构造方法,点击过Construcor之后点击select None即可

插入图片:

标签:无参,name,构造方法,构造,class,面向对象,详解,Animal,public
来源: https://www.cnblogs.com/lingstar/p/16466692.html