一.面向对象
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));
}
}