lingling

 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿(1)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔档案

  • 2011年1月 (2)
  • 2010年12月 (5)
  • 2010年11月 (7)
  • 2010年10月 (15)

搜索

  •  

最新评论

  • 1. re: QQ发送消息[未登录]
  • X脑子有问题?
  • --1
  • 2. re: QQ发送消息
  • sdg sdgsdfgsdf
  • --风格
  • 3. re: listener监听器
  • 不是,应该是同时多个人访问一台服务器时,服务器的承受能力@咖啡
  • --风铃
  • 4. re: listener监听器[未登录]
  • @小小


    考虑并发,什么意思?如果一秒钟内同时有2人进入网站,监听不到?
  • --咖啡
  • 5. re: listener监听器
  • 初学者,没考虑到那么多@小小
  • --lingling

阅读排行榜

  • 1. 过滤器—防止未登录直接访问网站内部(2935)
  • 2. listener监听器(2190)
  • 3. Junit测试(2080)
  • 4. MVC小程序(1879)
  • 5. 邮箱自动登录(1590)

评论排行榜

  • 1. 学生成绩处理程序(7)
  • 2. listener监听器(4)
  • 3. MVC小程序(4)
  • 4. 过滤器—防止未登录直接访问网站内部(4)
  • 5. Http乱码过滤器(4)

Powered by: 博客园
模板提供:沪江博客
BlogJava | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

IO小总结
     摘要:   IO中按照数据流的方向不同可以分为输入流和输出流(以程序的角度来考虑) 按照数据单位的不同可以分为字节流和字符流。 按照功能的不同可以分为节点流和处理流。   J2SDK所提供的所有流类型位于包java.io内斗分别继承自以下四种抽象流类型   ...  阅读全文
posted @ 2010-11-08 17:48 向日葵 阅读(146) | 评论 (0) | 编辑 收藏
 
IO应用——学生信息管理小系统
     摘要:   我们采用分层的项目思想,将该系统分为前台显示层,后台业务处理层,存储层。 该系统程序中有Main 、Mnue、 Person 、PersonOperate 、FileOperate和 InputData Menu属于前台显示层,它列出管理系统的菜单 StudentOperate属于后台业务处理层, 它的主要作用是①接收数据②实例化对象③调用FileObject类 FileO...  阅读全文
posted @ 2010-11-07 12:20 向日葵 阅读(258) | 评论 (0) | 编辑 收藏
 
医院挂号排队小系统
 

我们做一个医院挂号排队小系统:患者根据需要选择相应的专家挂号排队等候,专家看完病人后通过点击按钮选择下一个患者。

其中包括患者,专家,患者客户端服务器,专家客户端服务器四个类。


患者类:


package com.dr.hospital;


public class Patient {

 private String name;
 private int num;
 private int frontNum;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getNum() {
  return num;
 }
 public void setNum(int num) {
  this.num = num;
 }
 public int getFrontNum() {
  return frontNum;
 }
 public void setFrontNum(int frontNum) {
  this.frontNum = frontNum;
 }
 
 
 
}


患者客户端服务器:

package com.dr.hospital;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;

public class QueueServer1 {

 Map<Integer,Queue<Patient>> patientMap=new HashMap<Integer,Queue<Patient>>();
 Queue<Patient> patientList1=new LinkedList<Patient>();
 Queue<Patient> patientList2=new LinkedList<Patient>();
 Queue<Patient> patientList3=new LinkedList<Patient>();

 public Queue<Patient> init(Integer j) {
  
  if(j==1){
  for(int i=0;i<10;i++){
   Patient p=new Patient();
   p.setNum(i);
   p.setFrontNum(i-1);
   patientList1.offer(p);
   patientMap.put(j, patientList1);
  }
  return patientList1;
 }
  else if(j==2){
   for(int i=0;i<5;i++){
    Patient p=new Patient();
    p.setNum(i);
    p.setFrontNum(i-1);
    patientList2.offer(p);
    patientMap.put(j, patientList2);
   }
   return patientList2;
  }
  else {
   for(int i=0;i<3;i++){
    Patient p=new Patient();
    p.setNum(i);
    p.setFrontNum(i-1);
    patientList3.offer(p);
    patientMap.put(j, patientList3);
   }
  return patientList3;
 }
 
   
  }
 }

 



患者客户端:


package com.dr.hospital;


import java.util.Queue;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

 

public class PatientUI {

 
 public static void main(String[] args) {
  
  
  final Display display=Display.getDefault();
  final Shell shell=new Shell();
  shell.setMaximized(true);
  shell.setText("医院挂号之患者使用的客户端");
  
  QueueServer1 qs=new QueueServer1();//实例化类
  final Queue<Patient> patientList1=qs.init(1);//初始化队列服务器
  final Queue<Patient> patientList2=qs.init(2);//初始化队列服务器
  final Queue<Patient> patientList3=qs.init(3);//初始化队列服务器
  
  
  final Text txt1=new Text(shell,SWT.NULL);
  txt1.setBounds(100,50,200,200);
  
  final Button button1=new Button(shell,SWT.Activate);
  button1.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
   
    Patient patient1=new Patient(); //实例化患者
    patient1.setNum(patientList1.size()+1);
    patient1.setFrontNum(patientList1.size());
    patientList1.offer(patient1);
    
    if(patientList1.size()<=20){
     txt1.setText("您是第"+patient1.getNum()+"号,您前面还有"+patient1.getFrontNum()+"名患者,请耐心等候。");
    }
    else{
     txt1.setText("您前面有20名患者,请考虑");
    }
   }
  });
  button1.setBounds(130, 300, 150, 50); // 设置按钮位置
  button1.setFont(new Font(display,"宋体",12,SWT.BOLD));
  button1.setText("1号专家");// 设置按钮上的文字

  
  final Text txt2=new Text(shell,SWT.NULL);
  txt2.setBounds(400,50,200,200);
  
  final Button button2=new Button(shell,SWT.Activate);
  button2.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
   
    Patient patient2=new Patient();//实例化患者
    patient2.setNum(patientList2.size()+1);
    patient2.setFrontNum(patientList2.size());
    patientList2.offer(patient2);
    
    if(patientList2.size()<=20){
     txt2.setText("您是第"+patient2.getNum()+"号,\n您前面还有"+patient2.getFrontNum()+"名患者,请耐心等候。");
    }
    else{
     txt2.setText("您前面有20名患者,请考虑");
    }
  
   }
  });
  button2.setBounds(430, 300, 150, 50); // 设置按钮位置
  button2.setFont(new Font(display,"宋体",12,SWT.BOLD));
  button2.setText("2号专家");// 设置按钮上的文字

  
  final Text txt3=new Text(shell,SWT.NULL);
  txt3.setBounds(700,50,200,200);
  
  final Button button3=new Button(shell,SWT.Activate);
  button3.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
   
    Patient patient3=new Patient();//实例化患者
    patient3.setNum(patientList3.size()+1);
    patient3.setFrontNum(patientList3.size());
    patientList3.offer(patient3);
    
    if(patientList3.size()<=20){
     txt3.setText("您是第"+patient3.getNum()+"号,您前面还有"+patient3.getFrontNum()+"名患者,请耐心等候。");
    }
    else{
     txt3.setText("您前面有20名患者,请考虑");
    }
  
   }
  });
  button3.setBounds(730, 300, 150, 50); // 设置按钮位置
  button3.setFont(new Font(display,"宋体",12,SWT.BOLD));
  button3.setText("3号专家");// 设置按钮上的文字

  
     shell.layout();
     shell.open();
     while(!shell.isDisposed()){
      if(!display.readAndDispatch()){
        display.sleep();
       }
    }
 }

}

 

专家类:

package com.dr.hospital;

public class Doctor {

 private int id;
 private String name;
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}



专家客户端服务器:

package com.dr.hospital;

import java.util.LinkedList;
import java.util.Queue;

public class QueueServer {

  Queue<Patient> patientList1=new LinkedList<Patient>();
  Queue<Patient> patientList2=new LinkedList<Patient>();
  Queue<Patient> patientList3=new LinkedList<Patient>();
  public Queue<Patient> init(Integer j){
    
   
   if(j==1){
   for(int i=1;i<10;i++){
    Patient p=new Patient();
    p.setNum(i);
    p.setFrontNum(i-1);
    patientList1.add(p);
    
   }
   return patientList1;
  }
   else if(j==2){
    for(int i=1;i<15;i++){
     Patient p=new Patient();
     p.setNum(i);
     p.setFrontNum(i-1);
     patientList2.add(p);
     
    }
    return patientList2;
   }
   else{
    for(int i=1;i<10;i++){
     Patient p=new Patient();
     p.setNum(i);
     p.setFrontNum(i-1);
     patientList3.add(p);
     
    }
   return patientList3;
  }
  
    
   }
  }



专家客户端:

 

package com.dr.hospital;

import java.util.Queue;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;


public class DoctorUI {

 
 public static void main(String[] args) {
  final Display display=Display.getDefault();
  final Shell shell=new Shell();
  shell.setMaximized(true);
  shell.setText("医院挂号之专家使用的客户端");
  
  QueueServer qs=new QueueServer();//实例化类
  final Queue<Patient> patientList1=qs.init(1);//初始化队列服务器
  final Queue<Patient> patientList2=qs.init(2);//初始化队列服务器
  final Queue<Patient> patientList3=qs.init(3);//初始化队列服务器
  
  
  final Text txt1=new Text(shell,SWT.NULL);
  txt1.setBounds(100,50,200,200);
  
  final Button button1=new Button(shell,SWT.Activate);
  button1.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
   Patient patient=patientList1.poll();
   if(patient!=null){
    txt1.setText(patient.getNum()+"号您好!请到1号专家室就诊");
   }else{
    txt1.setText("现在没有病人,您可以休息会了");
   }
    
    
   }
  });
  button1.setBounds(130, 300, 150, 50); // 设置按钮位置
  button1.setFont(new Font(display,"宋体",10,SWT.BOLD));
  button1.setText("1号专家,下一个");// 设置按钮上的文字
  
  
  final Text txt2=new Text(shell,SWT.NULL);
  txt2.setBounds(400,50,200,200);

  final Button button2=new Button(shell,SWT.Activate);
  button2.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
   
    Patient patient=patientList2.poll();
    if(patient!=null){
    txt2.setText(patient.getNum()+"号您好,请到2号专家室就诊");
   }else{
    txt2.setText("现在没有病人,您可以休息会了");
   }
   }
  });
  button2.setBounds(430, 300, 150, 50); // 设置按钮位置
  button2.setFont(new Font(display,"宋体",10,SWT.BOLD));
  button2.setText("2号专家,下一个");// 设置按钮上的文字
  
  

  final Text txt3=new Text(shell,SWT.NULL);
  txt3.setBounds(700,50,200,200);
  final Button button3=new Button(shell,SWT.Activate);
  button3.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
    
    Patient patient=patientList3.poll();
    if(patient!=null){
    txt3.setText(patient.getNum()+"号您好,请到3号专家室就诊");
   }else{
    txt3.setText("现在没有病人,您可以休息会了");
   }
    
   }
  });
  button3.setBounds(730, 300, 150, 50); // 设置按钮位置
  button3.setFont(new Font(display,"宋体",10,SWT.BOLD));
  button3.setText("3号专家,下一个");// 设置按钮上的文字

  

  
     shell.layout();
     shell.open();
     while(!shell.isDisposed()){
      if(!display.readAndDispatch()){
        display.sleep();
       }
    }
 }
}



患者客户端运行结果:



专家客户端运行结果:

posted @ 2010-11-03 00:03 向日葵 阅读(257) | 评论 (2) | 编辑 收藏
 
工商银行金卡卡塞小程序
   

我们做一个银行排队金卡卡塞小系统,并用swt实现图形界面功能。

银行系统中包括:银行工作人员、办理业务的用户(包括普通用户和金卡用户),还有存放用户对列的服务器。

用户有3个属性:排队号码、排在前面的人数、卡的类型(普通卡和金卡)。

需要注意的是:金卡用户来的时候,会自动排在队列的最前面办理业务。


代码如下:

用户类:

package com.dr.ui;

public class Waiter {

 private int num;
 private int frontNum;
 private int flag;   //卡的类型   0=普通卡    1=金卡
 public int getNum() {
  return num;
 }
 public void setNum(int num) {
  this.num = num;
 }
 public int getFrontNum() {
  return frontNum;
 }
 public void setFrontNum(int frontNum) {
  this.frontNum = frontNum;
 }
 public int getFlag() {
  return flag;
 }
 public void setFlag(int flag) {
  this.flag = flag;
 }
 
}




服务器:

package com.dr.ui;

import java.util.LinkedList;


public class QueueServer {

 LinkedList<Waiter> waiterList=new LinkedList<Waiter>();
 
 

 public LinkedList<Waiter> init() {
  
  for(int i=1;i<=10;i++){
   Waiter w=new Waiter();
   w.setNum(i);
   w.setFrontNum(i-1);
   waiterList.add(w);
  }
  
  
  
  return waiterList;
 }
}




用户客户端:

package com.dr.ui;

import java.util.LinkedList;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;


public class WaiterQueueUI {

 
 public static void main(String[] args) {
  final Display display=Display.getDefault();
  final Shell shell=new Shell();
  shell.setMaximized(true);
  shell.setText("银行排队之顾客使用的客户端");
  QueueServer qs=new QueueServer();
  final LinkedList<Waiter> waiterList=qs.init();
  
  final Text txt=new Text(shell,SWT.NULL);
  txt.setBounds(50,50,500,450);
  
  final Button button=new Button(shell,SWT.Activate);
  button.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
    Waiter waiter=new Waiter();
    waiter.setNum(waiterList.size()+1);
    waiter.setFrontNum(waiterList.size());
    waiterList.offer(waiter);
    
    if(waiterList.size()<=50){
     txt.setText("尊敬的用户您好!您现在排在"+waiter.getNum()+"位置上,\n您前面有"+waiter.getFrontNum()+"个人。\n请耐心等候吧");
     
    }
    else{
     txt.setText("尊敬的用户您好!您前面已经排50个人,请考虑!\n"+"您现在排在"+waiter.getNum()+"位置上,\n您前面有"+waiter.getFrontNum()+"个人\n请您耐心等候吧!哈哈");
    }
   }
  });
  button.setBounds(180,530,200,75);
  button.setText("个人业务");
  
  final Text goldTxt=new Text(shell,SWT.NULL);
  goldTxt.setBounds(650,50,500,450);
  
  final Button goldButton=new Button(shell,SWT.Activate);
  goldButton.addSelectionListener(new SelectionAdapter(){
   public void widgetSelected(SelectionEvent e){
    Waiter waiter=new Waiter();
    waiter.setFlag(1);
    waiterList.addFirst(waiter);
    
     goldTxt.setText("尊敬的金卡用户您好,现在可以去办理业务");
     
    
   }
  });
  goldButton.setBounds(780,530,200,75);
  goldButton.setText("金卡通道");
  
  
  shell.layout();
  shell.open();
  while(!shell.isDisposed()){
   if(!display.readAndDispatch()){
    display.sleep();
   }
  }
 }

}




银行工作人员客户端:

package com.dr.ui;

import java.util.LinkedList;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;


public class BankWorkerUI {

       public static void main(String[] args) {
  
  final Display display = Display.getDefault();
  final Shell shell = new Shell();
  shell.setSize(327, 253);
  
  shell.setText("银行排队之工作人员客户端");
  
  QueueServer qs=new QueueServer();
  final LinkedList<Waiter> waiterList = qs.init();//初始化队列服务器
    
     final Text txt = new Text(shell,SWT.MULTI);
     txt.setBounds(65, 30, 180, 70);
  // 事件代码里要访问button
  final Button button = new Button(shell, SWT.Activate);
  button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent e) {
      
      Waiter waiter= waiterList.poll();
      if(waiter!= null){
        txt.setText(waiter.getNum()+"号顾客请到1号窗口办理业务");
      }else{
       txt.setText("现在没有人办理业务了,您可以休息会了\n 喝杯咖啡吧,哈哈!");
      }
     }
    });
  button.setBounds(90, 141, 100, 25); // 设置按钮位置
  button.setText("下一个");// 设置按钮上的文字

  // ------------------END---------------------------------------------
  shell.layout();
  shell.open();
  while (!shell.isDisposed()) {
   if (!display.readAndDispatch())
    display.sleep();
  }
 }
}



用户客户端运行结果:

银行工作人员客户端运行结果:

posted @ 2010-11-02 17:23 向日葵 阅读(184) | 评论 (0) | 编辑 收藏
 
学生选课系统
 学生选课系统:一个学生可以选择多门课程,一门课程也可以被很多学生选择,学生和课程之间是多对多的关系。
首先我们先封装一个学生类,里面有学生的姓名、年龄等属性,还有盛放课程的List集合。
然后封装一个课程类,有课程名称,学分还有盛放学生的List集合。
最后是一个测试类,在测试类里实例化学生和课程进行测试。



代码如下:

学生类:

package com.dr.selectcourse;

import java.util.ArrayList;
import java.util.List;

public class Student {

 private String name;
 private int age;
 private List<Course> CourseList;
 public Student(String name,int age){
  this.setName(name);
  this.setAge(age);
  this.setCourseList(new ArrayList<Course>());
 }
 public void addCourse(Course course){
  this.CourseList.add(course);
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public List<Course> getCourseList() {
  return CourseList;
 }
 public void setCourseList(List<Course> courseList) {
  this.CourseList = courseList;
 }
 
 
}


 

课程类:


package com.dr.selectcourse;

import java.util.ArrayList;
import java.util.List;

public class Course {

 private String name;
 private float score;
 private List<Student> StudentList;
 public Course(String name,float score){
  this.setName(name);
  this.setScore(score);
  this.setStudentList(new ArrayList<Student>());
 }
 public void addStudent(Student student){
  this.StudentList.add(student);
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public float getScore() {
  return score;
 }
 public void setScore(float score) {
  this.score = score;
 }
 public List<Student> getStudentList() {
  return StudentList;
 }
 public void setStudentList(List<Student> studentList) {
  this.StudentList = studentList;
 }
}



 

测试类


package com.dr.selectcourse;


import java.util.Iterator;
import java.util.List;

public class SelectCourse {

 
 public static void main(String[] args) {
  
  
  Course c1=new Course("应用密码学",2.0f);
  Course c2=new Course("中小型网络组建",5.0f);
  Course c3=new Course("数字水印",2.0f);
  
  Student stu1=new Student("宋可",20);
  Student stu2=new Student("田馨",21);
  Student stu3=new Student("林岚",21);
  Student stu4=new Student("刘昕",22);
  Student stu5=new Student("张涵",21);
  
  c1.addStudent(stu1);
  stu1.addCourse(c1);
 
  c2.addStudent(stu2);
  stu2.addCourse(c2);
  
  c3.addStudent(stu3);
  stu3.addCourse(c3);
  
  c1.addStudent(stu4);
  stu4.addCourse(c1);
  
  c3.addStudent(stu5);
  stu5.addCourse(c3);
  
  System.out.println("学生姓名:"+stu1.getName());
  Iterator<Course> iter1=stu1.getCourseList().iterator();
  while(iter1.hasNext()){
   Course c=iter1.next();
   System.out.println("\t| 课程名称:"+c.getName()+",学分: "+c.getScore());
  }
  System.out.println("课程名称:"+c3.getName());
  Iterator<Student> iter2=c3.getStudentList().iterator();
  while(iter2.hasNext()){
   Student s=iter2.next();
   System.out.println("\t| 学生姓名:"+s.getName()+",学生年龄:"+s.getAge());
  }
  
 }

}

运行结果:
posted @ 2010-10-30 16:55 向日葵 阅读(244) | 评论 (0) | 编辑 收藏
 
QQ发送消息

 

我们做一个小程序,简单实现QQ发送消息的功能。

先定义一个消息类,里面有消息的属性(来自哪里,发送到哪,消息内容)。然后定义一个测试类测试我们的运行结果,输出发送消息的内容。测试类里面需要一个Map来存放每一个QQ号码和与之对应的消息队列List<Message>。

 


 

消息类:


package com.dr.QQ1;

public class Message {

 private String from;
 private String to;
 private String content;
 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 String getContent() {
  return content;
 }
 public void setContent(String content) {
  this.content = content;
 }
 
}


 

测试类:



package com.dr.QQ1;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {

 
 public static void main(String[] args) {
  
  Map<String,List<Message>> QQMap=new HashMap<String,List<Message>>();
  List<Message> messageList=new ArrayList<Message>();
  
  //第一次QQ1给QQ2发送消息
  Message m=new Message();
  m.setFrom("QQ1");
  m.setTo("QQ2");
  m.setContent("Hi");
  messageList.add(m);
  QQMap.put(m.getTo(), messageList);
  
  //第二次QQ1给QQ2发送消息
     m=new Message();
     m.setFrom("QQ1");
     m.setTo("QQ2");
     m.setContent("How are you");
     messageList.add(m);
     QQMap.put(m.getTo(), messageList);
    
     //QQ2来取他的消息队列
     List<Message> qq2List=QQMap.get("QQ2");
     for(Message msg:qq2List){
      System.out.println(msg.getContent());
      
     }
  
  
 }

}

 

运行结果:


posted @ 2010-10-30 13:56 向日葵 阅读(780) | 评论 (2) | 编辑 收藏
 
QQ好友分组小程序
 

做一个QQ分组的小程序:首先新建一个好友类,定义它的属性(QQ号,姓名,个性签名等)。然后定义组类,定义它的属性(组号,组名,管理该组成员列表集合)。最后通过测试类进行测试。

 

 

好友类

public class Buddy {

 private String qqId;
 private String qqName;
 private String qqImpresa;
 public Buddy(String qqId,String qqName,String qqImpresa){
  this.setQqId(qqId);
  this.setQqName(qqName);
  this.setQqImpresa(qqImpresa);
 }
 
 public String getQqId() {
  return qqId;
 }
 public void setQqId(String qqId) {
  this.qqId = qqId;
 }
 public String getQqName() {
  return qqName;
 }
 public void setQqName(String qqName) {
  this.qqName = qqName;
 }
 public String getQqImpresa() {
  return qqImpresa;
 }
 public void setQqImpresa(String qqImpresa) {
  this.qqImpresa = qqImpresa;
 }

 
 
}


 

组类

import java.util.ArrayList;
import java.util.List;


public class Group {

 private String id;
 private String groupName;
 private List<Buddy> buddyList;
 public Group(String id,String groupName){
  this.setId(id);
  this.setGroupName(groupName);
  this.setBuddyList(new ArrayList<Buddy>());
 }
 public void addBuddy(Buddy buddy){
  this.buddyList.add(buddy);
 }
 
    public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getGroupName() {
  return groupName;
 }
 public void setGroupName(String groupName) {
  this.groupName = groupName;
 }

 public List<Buddy> getBuddyList() {
  return buddyList;
 }
 public void setBuddyList(List<Buddy> buddyList) {
  this.buddyList = buddyList;
 }
 
 

 
 
}


 

测试类


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class TestGroup {

 
 public static void main(String[] args) {
  
  List<Group> gList=new ArrayList<Group>();
  
  Group g1=new Group("111","同学");
  Group g2=new Group("222","朋友");
  Group g3=new Group("333","同事");
  gList.add(g1);
  gList.add(g2);
  gList.add(g3);
  
  Buddy hans=new Buddy("01","hans","I am well");
  Buddy Tom=new Buddy("02","Tom","I am happy");
  Buddy Lily=new Buddy("03","Lily","I am fine");
  
  g1.addBuddy(Lily);
  g2.addBuddy(Tom);
  g3.addBuddy(hans);
  
  Iterator<Group> git=gList.iterator();
  while(git.hasNext()){
   Group p=git.next();
   System.out.println("-"+p.getGroupName());
  
  List<Buddy> bList=p.getBuddyList();
  Iterator<Buddy> bit=bList.iterator();
  while(bit.hasNext()){
   System.out.println("|--"+bit.next().getQqName());
  }
  
  }
 }

}


 

运行结果



posted @ 2010-10-30 00:08 向日葵 阅读(324) | 评论 (0) | 编辑 收藏
 
Java小考题
 

1 容器类的层次



 

2 抽象类和接口

 

抽象类:含有抽象方法,有常量,还可以有其他方法,可以实现。

接口:含有抽象方法和常量,只声明未实现。

 

3        final

在Java中声明类、变量、和方法时可用关键字final来修饰

①     被final标记的类不能被继承;

②     被final标记的方法不能被子类重写

③     被final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次

 

4重载和重写

 

重载:放生在一个类中,方法名称相同,参数的类型或个数不同

重写:是发生在继承关系之中,是由子类进行覆写的,方法名称相同,参数的类型或个数相同,方法的访问权限不能更严格

 

5        super和this

 

super:是由子类访问父类的内容

super.父类属性,如果属性没有被覆写,则也可以不写super   

super.父类方法(),如果方法没有被覆写,则可以不用 加super也表示调用父类中的方法

super是访问父类中的构造方法,必须放在首行

this:是直接访问本类中的内容

  this本类属性

  this.本类方法(),可以不写this,也表示调用本类的

   this 是访问本类中的其他构造,必须放在首行


posted @ 2010-10-29 23:15 向日葵 阅读(113) | 评论 (0) | 编辑 收藏
 
this和super的区别

1、this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)

2 、 super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)

3、this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)

4、super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时)

如:super.变量名

super.成员函数据名(实参)


应用实例:

class Person{
 private String name;
 private int age;
 public Person(String name,int age){
  this.setName(name);
  this.setAge(age);
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public void print(){
  System.out.print("姓名:"+this.getName()+",年龄:"+this.getAge());
 }
 
}
class Student extends Person{
 private String School;
 public Student(String name,int age,String school){
  super(name,age);
  this.setSchool(school);
 }

 public String getSchool() {
  return School;
 }

 public void setSchool(String school) {
  School = school;
 }
 public void print(){
  super.print();
  System.out.println(",学校:"+this.School);
 }
 
}
public class Demo01 {

 
 public static void main(String[] args) {
  Student stu=new Student("宋可",23,"唐山师范学院");
  stu.print();
  
 }

}

运行结果:

posted @ 2010-10-24 20:35 向日葵 阅读(130) | 评论 (0) | 编辑 收藏
 
简单登陆小程序
要求:做一个小程序,在控制台输入用户名和密码,判断当输入正确输出“欢迎访问哈!!!”,输入错误输出“用户名和密码不正确!!!”

代码如下:

package com.dr.Static;

import java.util.Scanner;

public class Demo06 {

 
 public static void main(String[] args) {
  
  Scanner s0=new Scanner(System.in);
  System.out.println("请输入用户名:");
  String name=s0.nextLine();
  
  Scanner s1=new Scanner(System.in);
  System.out.println("请输入密码:");
  String pwd=s1.nextLine();
  
  if("abc".equals(name)&&"123".equals(pwd)){
   System.out.println("欢迎访问哈!!!");
  }
  else{
   System.out.println("用户名和密码不正确!!!");
  }
 }

}


输入正确的运行结果:




输入错误的运行结果:

posted @ 2010-10-18 23:41 向日葵 阅读(114) | 评论 (0) | 编辑 收藏
 
仅列出标题
共3页: 上一页 1 2 3 下一页