学习day20

构造器详解

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:-
    • 必须和类的名字相同
    • 必须没有返回类型,也不能写void
package oop.Demo01.demo02;

//java——————class
public class Person {
    //一个类即使什么都不写,它也会存在一个方法
    //显示的定义构造器
    String name;
    int age;

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

    //实例化初始值
    //1.使用new关键字,本质实在调用构造器
    //2.用来初始化值
    public  Person(){
        this.name = "冉耘滔";
    }

    //有参构造:一旦构造了有参构造,无参就必须显示定义
    public Person(String name){
        this.name = name;
    }

    //alt + insert 一键生成构造器
    //slecl None 生成无参

}
/*
public static void main(String[] args) {
        //new 实例化了一个对象
        Person person = new Person();

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

    Alt + Insert

    this. =
 */

在这里插入图片描述

创建对象及内存分析

在这里插入图片描述

package oop.Demo01.demo03;

public class Pet {
    public String name;
    public int age;

    public void shout(){
        System.out.println("叫了一声");
    }
}
/*
public static void main(String[] args) {
        Pet dog = new Pet();
        dog.name = "旺财";
        dog.age = 3;
        dog.shout();
        System.out.println(dog.name);
        System.out.println(dog.age);

        Pet cat = new Pet();
    }
 */

简单小结类与对象

package oop.Demo01.demo02;

import oop.Demo01.demo03.Pet;

//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {
        /*
        1.类与对象
          类是一个模板:抽象,对象是一个具体的实例
        2.方法
          定义、调用!
        3.对应的引用
          引用类型: 基本类型(8)
          对象是通过引用来操作的:栈---堆
        4.属性:字段Field 成员变量
          默认初始化:
            数字:0 0.0
            char: u0000
            boolean: false
            引用:null
          修饰符 属性类型 属性名 = 属性值
        5.对象的创建和使用
          -必须使用new 关键字创建对象,构造器 Persin person = new Person();
          -对象的属性 ranyuntao.name
          -对象的方法 ranyuntao.sleep
        6.类:
          静态的属性   属性
          动态的行为   方法


         */
    }

}

作业P4

package com.stx;

public class Noodle {
    String type; // 小面种类
    int weight; // 分量
    boolean isHaveSoup; // 是否带汤


    /*public Noodle(boolean isHaveSoup) {
        this.isHaveSoup = isHaveSoup;
    }

    public Noodle(int weight) {
        this.weight = weight;
    }

    public Noodle(String type) {
        this.type = type;
    }
*/
    public Noodle(String type,int weight,boolean isHaveSoup){
        this.type = type;
        this.weight = weight;
        this.isHaveSoup = isHaveSoup;
    }
    public Noodle(String type,int weight){
        this.type = type;
        this.weight = weight;
    }

    public Noodle() {
    }
}
package com.stx;

import com.stx.Noodle;
/*
写一个小面类,类名为 Noodle, 有三个私有属性:
String  type; // 小面种类
int weight; // 分量
boolean isHaveSoup; // 是否带汤
写一个构造方法,以便简化初始化过程,如: Noodle noodle = new Noodle(“羊肉面”, 2, true) ;
1)重构构造方法,使得初始化过程多样化,如: Noodle n1 = new Noodle(“羊肉面”, 2 ) ;
2)如何使得new Noodle()无参构造方法创建出来的对象是:麻辣面,2两,带汤;
3) 写一个方法show() 打印小面的种类,分量,是否带汤用于查看是否符合要求,即将三个属性打印在控制台上。
 */
public class p4 {
    public static void main(String[] args) {
        Noodle noodle = new Noodle("羊肉面",2,true);
        Noodle n1 = new Noodle("羊肉面",2);

        System.out.println(noodle.type+noodle.weight+noodle.isHaveSoup);
        System.out.println(n1.type+n1.weight);

        Noodle n2 = new Noodle();
        n2.type = "麻辣面";
        n2.weight = 2;
        n2.isHaveSoup = true;

        System.out.println(n2.type+n2.weight+"两"+n2.isHaveSoup);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值