Java 构造器(判断用户是不是会员)

思路:
用户类User有两个状态:
name名字,
isVip是否为会员,
有一个行为确认自己是不是会员。

代码:

package ppp;

public class User {
    String name;
    
    //默认不是会员
        //字段的默认值,它是在默认的构造器里设置的。
    boolean isVip = false;

    void checkVip(boolean isVip){
        if(isVip) {
            System.out.println("是会员");
        }else {
            System.out.println("不是会员");
        }
    }
    
        // 测试
        // 在类中找不到默认的构造器,可以通过反编译工具看到默认的构造方法。
    public static void main(String[] args) {
                //注册用户
        User tom = new User();
        tom.name = "Tom";
        tom.isVip =false;
        
                // 在创建对象时,自动调用的方法,我们称它是构造器。
                // 比如下面第一行的User()即为构造器。
        User john = new User();
        john.name = "John";
        john.isVip = false;
        
        User mimi = new User();
        mimi.name = "Mimi";
        mimi.isVip = true;
        
        User kk = new User();
        kk.name = "Kk";
        
        //储存用户到数组
        User[] userlist = new User[] {tom,john,mimi,kk};
        
        //判断是否为会员
        for (User user : userlist) {
            System.out.print(user.name);
            user.checkVip(user.isVip);
            
        }
    }
}

结果:

Tom不是会员
John不是会员
Mimi是会员
Kk不是会员

内存结构图:


15-撩课学院-JavaEE-面向对象-用户会员内存分析.mp4_20190320_144434.073.jpg

用XJad反编译的内容

package ppp;

import java.io.PrintStream;

public class User
{

    String name;
    boolean isVip;          //没有默认值

        // 默认的构造器/构造方法
    public User()
    {
        isVip = false;            //默认值在这里哒!
    }

    void checkVip(boolean isVip)
    {
        if (isVip)
            System.out.println("是会员");
        else
            System.out.println("不是会员");
    }

    public static void main(String args[])
    {
        User tom = new User();
        tom.name = "Tom";
        tom.isVip = false;
        User john = new User();
        john.name = "John";
        john.isVip = false;
        User mimi = new User();
        mimi.name = "Mimi";
        mimi.isVip = true;
        User kk = new User();
        kk.name = "Kk";
        User userlist[] = {
            tom, john, mimi, kk
        };
        User auser[];
        int j = (auser = userlist).length;
        for (int i = 0; i < j; i++)
        {
            User user = auser[i];
            System.out.print(user.name);
            user.checkVip(user.isVip);
        }

    }
}

构造器的作用:

  • 创建对象,必须和new一起使用
  • 完成对象的初始化操作

构造器的特点:

  • 构造器的名称和当前类名是一样的
  • 禁止有返回类型 不能使用void作为返回值
  • 在构造器当作不能使用return
  • 但是构造器是有返回值的,它返回的是当前创建对象的地址

默认构造器的特点:

  • 符合上面构造器的所有特点
  • 没有参数
  • 如果类使用了public修饰符,它创建的默认构造器也会加public
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容