根据讲解修改后的作业:
package BlindDate;
import java.util.*;public class Love {
/**
* 网站注册:
* 1,注册需要信息:帐号(确认帐号是否被注册过) 密码 再次密码 随机验证码
* 2,录入信息: 姓名 性别 年龄 身高 体重
* 3,检查信息是否被录入数据库
* 4,登录:输入帐号 密码 随机验证码.得到录入信息 ()
*/
//帐号 密码
private String id;
private String password;
//姓名 性别 年龄 身高
private String name;
private char gender;
private int age;
private int hight;
public void setId(String id){
this.id = id;
}
public String getId(){
return id;
}
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return password;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}public void setGender(char gender){
this.gender = gender;
}
public char getGender(){
return gender;
}public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}public void setHight(int hight){
this.hight = hight;
}
public int getHight(){
return hight;
}
@Override
public String toString(){
return"Love[id="+id+",password="+password+",name="+name+",gender="
+gender+ ",age="+age+",hight="+hight+"]";
};
}
package BlindDate;
import java.util.*;
public class TestLove {
//创建一个数组用于存储注册的love对象
private Love[] loves = new Love[10];
//创建出一个扫描器对象,用于接收键盘输入的数据
private Scanner scanner = new Scanner(System.in);
//产生随机数的对象
private Random random = new Random();
/**
* start method
*/
public void start(){
System.out.println("***** 欢迎光临硻撕匿埠昶掵网 *****");
while(true){
System.out.println("请选择:\"1:注册\t\t2:登录\t\t3:退出\"");
String option = scanner.nextLine();
//把字符串类型的数字解析为int类型的数字
int num = Integer.parseInt(option);
switch(num){
case 1:
register();
break;
case 2:
login();
break;
case 3:
//结束虚拟机的退出形式
System.exit(0);
}
}
}
/**
* 注册
*/
private void register(){
//构建出来的这个love对象就是需要注册的对象
Love love = new Love();
//设置love的id,并且要求id的长度是6-14之间
String id;
while(true){
System.out.println("请输入6到14位的帐号:");
id = scanner.nextLine();
//String类中的length()方法表示求的该数字符串的元素个数,即字符串长度
if (id.length()<6||id.length()>14){
System.out.println("您输入的帐号非法,请重新输入");
//结束档次循环,继续下次循环
continue;
}else{
break;
}
}
//把满足条件的id存入到love对象中
love.setId(id);
//设置user的password,并且要求password长度只能够是6位
String pwd1;
while(true){
System.out.println("请输入6位密码:");
pwd1 = scanner.nextLine();
if(pwd1.length() !=6){
System.out.println("密码非法,请重新输入.");
continue;
}
System.out.println("请再次输入密码:");
String pwd2 = scanner.nextLine();
if(!pwd1.equals(pwd2)){
System.out.println("两次输入不一致,请重新输入");
continue;
}else{
break;
}
}
//把满足条件的password存入到love对象中
love.setPassword(pwd1);
//设置love姓名
System.out.println("请输入姓名:");
String name = scanner.nextLine();
love.setName(name);
//设置love的性别
System.out.println("请输入性别:");
String gender = scanner.nextLine();
//charAt(int index):方法表示获取字符串中某个下标位置的字符元素
char ch = gender.charAt(0);
love.setGender(ch);
//设置love的年龄,并且要求输入的必须是纯数字数据,范围在18到120之间
while(true){
System.out.println("请输入年龄");
String ageStr =scanner.nextLine();
boolean flag = false;
for(int i = 0;i<ageStr.length();i++){
//isDigit(char ch): 判断字符ch是否是数字,如果是数字返回true,否则范围false
char c = ageStr.charAt(i);
if(!Character.isDefined(c)){
flag = false;
break;
}else{
flag = true;
}
}
if(flag){
//parse:解析
//将字符串类型的数据解析为int类型的数据
int age = Integer.parseInt(ageStr);
if(age >= 18 && age<=120){
//把数据保存到love对象中
love.setAge(age);
break;
}
}else{
System.out.println("数据非法,请重新输入.");
continue;
}
}
//身高
System.out.println("请输入身高:");
String hight = scanner.nextLine();
love.setName(hight);
//验证验证码
while(true){
String ver = verification();
System.out.println("验证码:"+ver);
System.out.println("请输入验证码:");
String code = scanner.nextLine();
//ver.equalsIgnoreCase(code)方法表示,不区分大小写的比较两个字符串数据
if(ver.equalsIgnoreCase(code)){
break;
}else{
System.out.println("验证码错误,请重新输入.");
}
}
//往数组中存放love对象,并且不能够覆盖原来的对象,数据可以无限存储(数组扩容)
//如果离数组村满还差两个空间,则扩容
for(int i = 0;i<loves.length;i++){
if(i == loves.length - 2){
loves = Arrays.copyOf(loves,2* loves.length);
}
if(loves[i] == null){
loves[i] = love;
System.out.println("注册成功,祝你早日被铿.");
break;
}
}
}
/**
* 登录
*/
private void login(){
while(true){
System.out.println("请输入帐号:");
String id = scanner.nextLine();
System.out.println("请输入密码");
String password = scanner.nextLine();
boolean flag = false;
for(int i =0;i<loves.length;i++){
if(loves[i] != null){
Love love = loves[i];
if(id.equals(love.getId())&&password.equals(love.getPassword())){
System.out.println("登录成功");
System.out.println("个人信息:"+love);
flag = true;
break;
}
}else{
flag = false;
break;
}
}
if(!flag){
System.out.println("帐号或密码错误,请重新输入.");
}
}
}
/**
* 产生验证码的方法
* 因为次方法只为本类服务,所以是本类私有的,用private关键字修饰
*
* @return
*/
private String verification(){
String str = "23456789abcdefghijkmnpqrstuvwxyABCDEFGHJKLMNPQRSTUVWXY";
char[] chars = new char[6];
for(int i = 0;i<chars.length;i++){
//int index = random.nexInt(str.length());
//char ch = str.charAt(index);
//chars[i] = ch;
//上面三行代码等价于下面一行代码
chars[i] = str.charAt(random.nextInt(str.length()));
}
//将字符数组转变为字符串对象
String code = new String(chars);
return code;
}
}
package BlindDate;
/**
* 测试
* @author Rebecca_Morgan
* BlindDate
* 2016年1月6日
* 下午7:39:46
*/
public class Operation {
public static void main(String[] args){
TestLove control = new TestLove();
control.start();
}
}
新知识,课堂笔记:(继承的初步了解)
package inheritance;
//父类
public class Father {
public String name;
public char gender;
public int age;
//空参构造
public Father(){
}
//@param name
public Father(String name,char gender,int ae){
this.name = name;
this.gender = gender;
this.age = age;
}
/**
* sperk merhod
*/
public void speak(){
System.out.println("I can speak Chinese");
}
public void eat(){
System.out.println("a bowl of noodles");
}
public final void learn(){
System.out.println("learn hardly");
}
@Override
public String toString(){
return"Father[name="+name+",gender="+gender+",age="+age+"]";
}
}
package inheritance;
//子类
//通过extends关键字实现继承关系
public class Son extends Father{
public String name;
public char gender;
public int age;
public String position;
public double salary;
public Son(){
}
public Son(String name,char gender,int age){
this.name = name;
this.gender = gender;
this.age = age;
}
public Son(String name,char gender,int age,String position,double salary){
this(name,gender,age);
this.position = position;
this.salary =salary;
}
@Override
public void speak(){
System.out.println("I can speak both Chinese and English");
}
}
package inheritance;
public class Test {
public static void main(String[] args){
Father f = new Father("小头爸爸",'m',30);
System.out.println(f);
f.eat();
f.learn();
f.speak();
Son s = new Son("大头儿子",'m',6);
System.out.println(s);
s.eat();
s.learn();
s.speak();
}
}
课后总结:
父类有的,子类一定有 父类没有的,子类不一定没有 子类有的,父类不一定有 父类有的,子类可以改变其功能实现.