Java面向对象基础--类的设计及分析问题的方法---用户登录例子

1、用户登录的示例

首先要做的就是先把功能实现:

public class LoginDemo01{
	public static void main(String args[]){
		if(args.length!=2){			// 应该判断输入的参数个数是否是2
			System.out.println("输入的参数不正确,系统退出!") ;	// 给出一个正确的格式
			System.out.println("格式:java LoginDemo01 用户名 密码") ;
			System.exit(1) ;		// 系统退出
		}
		String name = args[0] ;		// 取出用户名
		String password = args[1] ;	// 取出密码
		if(name.equals("xiaowu")&&password.equals("qiang")){	// 验证
			System.out.println("欢迎" + name + "光临!") ;
		}else{
			System.out.println("错误的用户名和密码!") ;
		}
	}
};

2、问题的进一步分析

》需要一个完成专门验证的类

》为验证进行一个包装,通过一个类去访问验证的类

class Check{		// 完成具体的验证操作
	public boolean validate(String name,String password){
		if(name.equals("xiaowu")&&password.equals("qiang")){		// 验证
			return true ;
		}else{
			return false ;
		}
	}
};
class Operate{					// 本类只是调用具体的验证的操作
	private String info[] ;		// 定义一个数组属性,用于接收全部输入参数
	public Operate(String info[]){
		this.info = info ;		// 通过构造方法取得全部的输入参数
	}
	public String login(){
		Check check = new Check() ;	// 实例化Check对象,用于检查信息
		this.isExit() ;				// 判断输入的参数是否正确
		String str = null ;			// 用于返回信息
		String name = this.info[0] ;// 取出姓名
		String password = this.info[1] ;	// 取出密码
		if(check.validate(name,password)){	// 登陆验证
			str = "欢迎" + name + "光临!" ;
		}else{
			str = "错误的用户名和密码!" ;
		}
		return str ;
	}
	public void isExit(){			// 判断参数个数,来决定是否退出程序
		if(this.info.length!=2){
			System.out.println("输入的参数不正确,系统退出!") ;	// 给出一个正确的格式
			System.out.println("格式:java LoginDemo02 用户名 密码") ;
			System.exit(1) ;		// 系统退出
		}
	}
};
public class LoginDemo02{
	public static void main(String args[]){
		Operate oper = new Operate(args) ;		// 实例化操作类的对象
		System.out.println(oper.login()) ;		// 取得验证之后的信息
	}
};

3、程序的总结

时间: 2024-09-12 04:27:09

Java面向对象基础--类的设计及分析问题的方法---用户登录例子的相关文章

Java使用Preference类保存上一次记录的方法_java

本文实例讲述了Java使用Preference类保存上一次记录的方法.分享给大家供大家参考.具体分析如下: 在使用java中JFileChooser选择文件的时候,我们总希望在下次打开的时候能保存上次浏览的记录,即打开文件对话框的时候,总能追溯到上一次的路径. 有一个很愚蠢的方法,那就是在每次打开的时候把选择的文件的路径保存到本地文件中,再打开JFileChooser对话框的时候,先查看是否有内容,如果文件中有内容则按照存储的路径打开对话框. 如果我说Java里面可以不使用JNI的手段操作Win

Java面向对象基础--引用传递分析

class Demo{ int temp = 30 ; // 此处为了方便,属性暂时不封装 }; public class RefDemo01{ public static void main(String args[]){ Demo d1 = new Demo() ; // 实例化Demo对象,实例化之后里面的temp=30 d1.temp = 50 ; // 修改temp属性的内容 System.out.println("fun()方法调用之前:" + d1.temp) ; fun

Java面向对象基础--String类中常用的方法

split()和replaceAll()这两个方法需要正则支持. public class StringAPIDemo06{ public static void mian(String args[]){ String str1 = " hello "; //定义字符串 System.out.println(str1.trim());//去掉左右空格后输出 } }

Java面向对象基础--String类

  String的内容比较: 基本数据类型,使用 == 进行比较. 使用直接赋值,可以有效的节省堆内存. 使用直接赋值的方式,只需要一个实例化对象即可.而使用new String()的方式,意味着要开辟两个内存对象. 实际上:字符串内容的改变,改变的是内存地址的引用关系.              

Java面向对象基础---名词概念的理解:方法的重载、构造函数、封装性

方法的重载:方法名称相同,但参数的类型和个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用. 例如:System.out.println();属于方法的重载. 方法的重载一定是根据参数类型和个数来判断的. 构造函数:构建创造对象时调用的函数.作用:可以给对象进行初始化.Tip:函数名与类名相同,不用定义返回值类型,没有具体的返回值.   面向对象特征:1.封装(encapsulation)对外部不可见,保护程序的某些内同.2.继承性(inheritance)扩展功能.3.多态(pol

Java面向对象基础--实现单向链表

1.设计节点类 以string为数据保存内容,还必须有一个属性保存下一个节点的引用地址. class Node{ // 定义节点类 private String data ; // 保存节点内容 private Node next ; // 表示保存下一个节点 public Node(String data){ // 通过构造设置节点内容 this.data = data ; // 设置内容 } public void setNext(Node next){ this.next = next ;

Java面向对象基础--构造方法

只要一有对象实例化,就会调用此方法.   在整个JAVA的操作中,如果一个类中,没有明确的声明一个构造方法,则会自动产生一个没有参数的,什么都不做的构造方法,供用户使用.       构造方法的主要目的:就是为类中的属性进行初始化: 匿名对象:没有名字,在java中,如果一个对象只使用一次,就可以将其定义成匿名对象. 总结: 对象在实例化的时候,必须调用构造方法: 每个类中至少有一个构造方法: 匿名对象,只开辟了堆内存的实例对象:    

Java面向对象基础--构造方法私有化

1.对构造方法进行封装 class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void print(){ System.out.println("Hello World!!!") ; } }; 2.使用 被私有化构造方法的Singleton类,不能在外部直接实例化. class Singleton{ private Singleton(){ // 将构造方法进行了封装,私有化 } public void pri

Java面向对象基础--链表的改进

采用内部类完成链表的操作 1.增加节点,在链表的最后进行增加 class Link{ // 链表的完成类 class Node{ // 保存每一个节点,此处为了方便直接定义成内部类 private String data ; // 保存节点的内容 private Node next ; // 保存下一个节点 public Node(String data){ this.data = data ; // 通过构造方法设置节点内容 } public void add(Node newNode){ /