类与对象的创建

package com.oop.demo02;

/**
 * @ClassName: Student
 * @Author: 南冥有猫不须铭
 * @Date: 2021/3/24-16:28
 * @Description: 类与对象的创建
 */

//学生类
public class Student {  //一个类中只有属性和方法两种东西

    //属性:字段
    String name; // null(初始化)
    int age; // 0(初始化)

    //方法
    public void study(){
        System.out.println(this.name+"在学习");
    }
}

//学程序好? 对世界进行更好的建模! --- 宅! 音乐,旅游,出国!


/*当前项目在测试类中的main方法:
    public static void main(String[] args) {

        //类:抽象的,实例化
        //类实例化后会返回一个自己的对象!
        //student对象就是一个Student类的具体实例!
        Student student = new Student(); // new Student(); + Alt+Enter + Enter

        Student xiaoming = new Student(); //xiaoming对象是Student类的一个具体实例
        Student xiaohong = new Student(); //xiaohong对象是Student类的一个具体实例

        xiaoming.name = "小明"; //给Student类中的name赋值
        xiaoming.age = 3; //给Student类中的age赋值

        System.out.println(xiaoming.name); //未赋值时是 null,赋值后是 小明
        System.out.println(xiaoming.age); //未赋值时是 0,赋值后是 3

        xiaohong.name = "小红";
        xiaohong.age = 3;

        System.out.println(xiaohong.name); // 小红
        System.out.println(xiaohong.age); // 3
    }
 */
package com.oop.demo02;

/**
 * @ClassName: Person
 * @Author: 南冥有猫不须铭
 * @Date: 2021/3/24-18:07
 * @Description: 构造器详解
 */

//java ---> class
public class Person {

    //一个类即使什么都不写,它也会存在一个方法(构造方法)
    //显示的定义构造器

    String name;    //name: kuangshen
    int agel;

    //构造器作用:
    //1.使用new关键字,本质是在调用构造器(构造方法)
    //2.用来初始化值
    //无参构造  (“默认的构造器”)
    public Person(){
        //this.name = "qinjiqng"; //这里的name指的是上面String的name
    }

    //有参构造:一旦定义了有参构造,无参构造就必须显示定义(即无参构造一定得有,但其大括号中要空着)  (“重载”)
    public Person(String name){
        this.name = name; //this.name代表对象本身(当前类)的name,等号后面的name代表传递下来的参数
    }


    //Alt+Insert,选择Constructor可以生成构造器(Insert键在数字键盘的0键上)
    //可以选一个属性,或者按住Ctrl选择多个属性,生成有参构造(重载一个或者多个参数)
    //也可以选择SelectNone,什么都不选,生成一个无参构造:public Person(){}

    public Person(int agel) {
        this.agel = agel;
    }

    public Person(String name, int agel) {
        this.name = name;
        this.agel = agel;
    }
}

/*
    public static void main(String[] args) {

        //new 实例化了一个对象
        Person person = new Person("kuangshen");//通过new关键字去调用构造方法,有参数时,会选择调用有参构造

        System.out.println(person.name); //kuangshen
    }

    构造器:
    1.和类名相同
    2.没有返回值
    作用:
    1.new 本质在调用构造方法
    2.初始化对象的值
    注意点:
    1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参构造

    快捷键:Alt + Insert(Insert在数字0键上)    一键生成构造方法(构造器)

    this._ = _     等号前面代表当前类,后面是参数传进来的值

 */
package com.oop.demo02;

/**
 * @ClassName: Application
 * @Author: 南冥有猫不须铭
 * @Date: 2021/3/24-16:29
 * @Description: 测试类(应用类):main方法写在这个类中
 */

//一个项目应该只存在一个main方法
public class Application {  //Application:应用

    public static void main(String[] args) {

        /*[Student.java]的测试:
        //类:抽象的,实例化
        //类实例化后会返回一个自己的对象!
        //student对象就是一个Student类的具体实例!
        Student student = new Student(); // new Student(); + Alt+Enter + Enter

        Student xiaoming = new Student(); //xiaoming对象是Student类的一个具体实例
        Student xiaohong = new Student(); //xiaohong对象是Student类的一个具体实例

        xiaoming.name = "小明"; //给Student类中的name赋值
        xiaoming.age = 3; //给Student类中的age赋值

        System.out.println(xiaoming.name); //未赋值时是 null,赋值后是 小明
        System.out.println(xiaoming.age); //未赋值时是 0,赋值后是 3

        xiaohong.name = "小红";
        xiaohong.age = 3;

        System.out.println(xiaohong.name); // 小红
        System.out.println(xiaohong.age); // 3
         */


        //new 实例化了一个对象
        Person person = new Person("kuangshen");//通过new关键字去调用构造方法,有参数时,会选择调用有参构造

        System.out.println(person.name); //kuangshen


    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值