Java---构造器

本文介绍了面向对象编程中的关键概念,如类与对象、构造器(包括默认构造器和有参数构造器)、方法重载以及在模拟用户登录和购票过程中的应用。还讨论了引用的概念和数组在存储用户信息中的使用。
摘要由CSDN通过智能技术生成

一.面向对象

1.类与对象
2.构造器(constructor)
Dog d = new Dog();

构造器 <—— Dog():

初始化对象

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

(1)默认构造器(无参构造器)

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

public 类名(){

}
类名 a = new 构造器();

(2)初始化的默认值

int-----0

double-----0.0

boolean-----true/false

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

(3)有参数构造器(方法)

public 类名(参数列表){

}

(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;
    }

3.方法重载

C语言没有重载功能。

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

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

4.不定参数

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

public int add(int ... a){
    int sum= 0;
    for(int i=0;i<a.length;i++){
        sum+=a[i];
    }
    return sum;
}

5.什么是引用

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

(1)null

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

int a= 0;
String str = null;
Exception in thread "main" java.lang.NullPointerException
    at com.ffyc.Person.main(Person.java:39)

(2)代码分离

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

6.引用传递

cat:C的拷贝值传递

二.面向对象

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

·用户注册

·用户登录

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(inputPasswor) ){
         x = us;
         f = true;
         break;
    }
}

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));
    }
}

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值