java语言优势:
面向对象编程核心:
对象是什么?
如何创建对象?
面向对象编程(OOP):所有的功能实现都是基于对象,都是通过对象进行完成
依靠class(类)进行实现:
? 一个类别class可以创建出来n个对象,每个对象都有唯一的class与之相对应
多个对象的模板(对象共有的一些信息)
对于学生来说:学生编号 学生姓名 学生成绩 学习行为
访问权限修饰符 普通修饰符 数据类型 变量名 = 数据;
类名 对象名(变量/实例/引用) = new 类名();
类名 对象名(变量/实例/引用) = new 构造方法;
public class Student {
//类的组成部分
//成员变量(属性) 成员方法(行为)
//成员变量
public int stuId;
public String stuName;
public double stuScore;
//成员方法
public void Study(){
System.out.println(stuName+"在学习....");
}
public static void main(String[] args) {
Student meilin = new Student();
System.out.println(meilin);
meilin.Study();
}
}
对象名.成员变量;
对象名.成员方法();
public class Student {
//类的组成部分
//成员变量(属性) 成员方法(行为)
//成员变量
//当加上static后 数据就成了共享的
public int stuId;
public String stuName;
public double stuScore;
//成员方法
public void Study(){
System.out.println(stuName+"在学习....");
}
public static void main(String[] args) {
Student meiLin = new Student();
System.out.println(meiLin);
meiLin.Study();
System.out.println("===========");
Student chenRan = new Student();
System.out.println(chenRan);
chenRan.stuId = 1002;
chenRan.stuName = "陈然";
chenRan.stuScore = 100;
System.out.println("学生的编号:"+chenRan.stuId);
System.out.println("学生的姓名:"+chenRan.stuName);
System.out.println("学生的成绩:"+chenRan.stuScore);
chenRan.Study();
}
}
作用:对成员变量初始化数据
类名 对象名(变量/实例/引用) = new 构造方法;
创建对象其实是结合构造进行创建的。
在任意一个类里面,都默认存在一个无参的构造。如果写了有参构造的话,会把无参给覆盖掉。(就不能使用无参构造进行对象创建了)
初始化:
作用域:
生命周期:
内存:
作用: 对数据(成员变量)的封装.
实现方式:
将成员变量访问权限修饰符改成private
private:只能修饰成员变量和成员方法 。只能在本类里面直接访问。
提供对外的set(赋值)/get(获取)
开发中set/get方法不允许写任何逻辑
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String username;
private String password;
private int cardNo;
private boolean isRegister;
private boolean isLogin;
}
import java.util.Arrays;
import java.util.Scanner;
/**
* @Packagename: 类与对象.lucky
* @Classname: LuckyMain
* @author: ChengGang
* @Date: 2020/12/31 23:05
* @version: IntelliJ IDEA 2020.3
* JDK 11.0.7
*/
public class LuckyMain {
private Scanner input;
private User user;
public void init() {
//初始化成员变量
input = new Scanner(System.in);
user = new User();
}
public void start() {
String answer;
do {
System.out.println("*********欢迎进入游客抽奖系统*************");
System.out.println("\t\t\t 1. 注册");
System.out.println("\t\t\t 2. 登录");
System.out.println("\t\t\t 3. 抽奖");
System.out.println("*********欢迎进入游客抽奖系统*************");
System.out.println("请选择类型:");
int choice = input.nextInt();
switch (choice) {
case 1:
//之前注册过,就不需要再注册
if (user.isRegister()) {
System.out.println("已经注册,无需继续注册");
break;
}
user = userRegister();
break;
case 2:
user.setLogin(userLogin());
break;
case 3:
lucky();
break;
default:
System.out.println("录入错误,请重新录入");
}
System.out.println("是否继续 y/n");
answer = input.next();
} while ("y".equals(answer));
System.out.println("程序退出...");
}
/**
* 实现用户抽奖
*/
private void lucky() {
if (!user.isLogin()) {
System.out.println("请先登录!");
return;
}
System.out.println("3. 会员抽奖");
while (true) {
System.out.print("请输入会员卡号:");
int cardNumber = input.nextInt();
if (cardNumber == user.getCardNo()) {
break;
} else {
System.out.println("卡号错误!请重新录入!");
}
}
int[] luckyNum = new int[5];
boolean isLucky = false;
for (int i = 0; i < 5; i++) {
luckyNum[i] = (int) (Math.random() * 9000 + 1000);
}
for (int num : luckyNum) {
if (num == user.getCardNo()) {
System.out.println("中奖卡号为:" + Arrays.toString(luckyNum));
System.out.println("恭喜您中奖了......");
isLucky = true;
break;
}
}
if (!isLucky) {
System.out.println("中奖卡号为:" + Arrays.toString(luckyNum));
System.out.println("抱歉您未中奖,下次继续努力");
}
}
/**
* 实现用户登录
**/
private boolean userLogin() {
if (!user.isRegister()) {
System.out.println("请先注册!");
return false;
}
System.out.println("2. 会员登录");
int count = 3;
while (count >= 1) {
System.out.print("请输入用户名:");
String userName = input.next();
System.out.print("请输入用户密码:");
String password = input.next();
if (!userName.equals(user.getUsername()) || !password.equals(user.getPassword())) {
count--;
if (count == 0) {
System.out.println("用户名或密码错误!登录失败!");
return false;
}
System.out.println("用户名或密码错误!登录失败!你还有" + count + "次输入机会");
} else {
System.out.println("登录成功");
break;
}
}
System.err.println("欢迎你" + user.getUsername());
return true;
}
/**
* 实现用户注册
**/
private User userRegister() {
System.out.println("1. 注册");
System.out.print("请输入用户名:");
String userName = input.next();
System.out.print("请输入用户密码:");
String password = input.next();
System.out.println("success!请牢记会员卡号");
int cardNum = (int) (Math.random() * 9000 + 1000);
System.out.println("用户名\t 密码\t 会员卡号");
System.out.println(userName + "\t" + password + "\t" + cardNum);
return new User(userName, password, cardNum, true, false);
}
}
public class LuckyApp {
public static void main(String[] args) {
LuckyMain luckyMain = new LuckyMain();
luckyMain.init();
luckyMain.start();
}
}
原文:https://www.cnblogs.com/cgcnblog/p/14235021.html