构造器的使用

1 面向对象

 

1.1 类与对象

 

1.2 构造器(constructor)

 

初始化对象

new: 创建对象(开辟空间)

1.2.1 默认构造器

 

编译器自动生成: 你没有创建过。

public 类名(){

}

类名  a = new 构造器();

1.2.2 初始化的默认值

 

int---0

double ---0.0

boolean --false

八个基本数据类型意外  -- null

1.2.3 有参数构造器(方法)

 

public  类名(参数列表){

}

1.2.4 开发过程中

 

类名

属性

set/get

方法

构造器[默认,有参数(如果参数不超过5个,全参数)]

//显示生成

public Dog(){}

public Dog(String name, String skin, String gender, int age) {

        this.name = name;

        this.skin = skin;

        this.gender = gender;

        this.age = age;

    }

1.3 方法重载

 

C语言没有重载功能。

在一个类中方法名称完全相同,参数的个数或者类型不同,方法重载。

【需求】计算器,能够进行加法计算。

1.4 不定参数

 

    /**

     * ... 不定参数,编译器解析数组 a[]

     * @param a

     * @return

     */

    public int add(int ... a){

        int sum= 0;

        for(int i=0;i<a.length;i++){

            sum+=a[i];

        }

        return sum;

    }

1.5 什么是引用

 

绑定对象变量(类似于指针)

1.5.1 null

 

 

配合引用, 没有和任何对象关联(绑定)

int  a= 0;

String str = null;

Exception in thread "main" java.lang.NullPointerException

 at com.ffyc.Person.main(Person.java:39)

1.5.2 代码分离

 

 

1. main的代码单独分离测试类

1.6 引用传递

 

2 面向对象

 

【项目】模拟用户登录之后进行购票工作

用户注册

用户登录

2.1 用户名

 

有很多用户,每个用户有用户名、密码,现金,存储这些用户

系统刚开始启动时,输入用户的信息。

注册用户---》注册用户能够登录

如何存储多个用户的信息。

int a=9;

int [] a =;

User[] =//对象数组

User[] users = new User[20]; //20个用户名

int size = 0;

Scanner sc = new Scanner(System.in);

//注册

while (size < 3) {

    System.out.println("请输入用户名: ");

    String username = sc.nextLine();

    System.out.println("请输入密码: ");

    String password = sc.nextLine();

    System.out.println("请输入预测余额: ");

    int balance = Integer.parseInt(sc.nextLine());

    User u = new User(username, password, balance);

    users[size++] = u;

}

//显示

for (int i = 0; i < size; i++) {

    User ux = users[i];

    System.out.println("用户名:" + ux.getUsername());

    System.out.println("密码:" + ux.getPassword());

    System.out.println("余额:" + ux.getBalance());

}

System.out.println("====用户注册完成=================");

System.out.println("请输入用户名: ");

String inputUsername = sc.nextLine();

System.out.println("请输入密码: ");

String inputPassword = sc.nextLine();

boolean f = false;

User x = null;

for (int i = 0; i < size; i++) {

    User us = users[i];

    if (us.getUsername().equals(inputUsername) && us.getPassword().equals(inputPassword)) {

        x = us;

        f = true;

        break;

    }

}

2.2 购票

 

Ticket :100

package com.ffyc;

public class Ticket {

    private int num;

    private String from;

    private String to;

    private int price;

    public Ticket() {

    }

    public Ticket(int num, String from, String to, int price) {

        this.num = num;

        this.from = from;

        this.to = to;

        this.price = price;

    }

    public int getNum() {

        return num;

    }

    public void setNum(int num) {

        this.num = num;

    }

    public String getFrom() {

        return from;

    }

    public void setFrom(String from) {

        this.from = from;

    }

    public String getTo() {

        return to;

    }

    public void setTo(String to) {

        this.to = to;

    }

    public int getPrice() {

        return price;

    }

    public void setPrice(int price) {

        this.price = price;

    }

    public void sold() {

        System.out.println("售出一张从\"" + from + "\"" + to + "\",售价:" + price + ",还有

余票:" + (--num));

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值