java基础类demo

//重写hashCode方法就必须重写equals方法
import java.util.* ;
class Person
{
 private String name ;
 private int age ;
 public Person(String name,int age)
 {
  this.name = name ;
  this.age = age ;
 }
 public String toString()
 {
  return "姓名:"+this.name+",年龄:"+this.age ;
 }
 public boolean equals(Object obj)
 {
  return true ;
 }
 public int hashCode()
 {
  return this.name.hashCode()+this.age * 1000 ;
 }
};
public class AdvDemo02
{
 public static void main(String args[])
 {
  Map m = new HashMap() ;
  m.put(new Person("张三",30),"张三") ;
  System.out.println(m.get(new Person("张三",30))) ;
 }
};
//重新克隆方法注意两点,一是实现接口,二是调用父类的克隆方法扩大克隆方法的访问权限
import java.util.* ;
// 也是一个标识接口
class Person implements Cloneable
{
 String name ;
 int age ;
 public Person(String name,int age)
 {
  this.name = name ;
  this.age = age ;
 }
 public String toString()
 {
  return "姓名:"+this.name+",年龄:"+this.age ;
 }
 public Object clone()
                throws CloneNotSupportedException
 {
  return super.clone() ;
 }
};
public class AdvDemo03
{
 public static void main(String args[]) throws Exception
 {
  Person p1 = new Person("张三",30) ;
  Person p2 = (Person)p1.clone() ;
  p2.name = "李四" ;
  System.out.println(p1) ;
  System.out.println(p2) ;
 }
};
//// 覆写compareTo方法就是排序规则
import java.util.* ;
class Person implements Comparable
{
 private String name ;
 private int age ;
 private float score ;
 public Person(String name,int age,float score)
 {
  this.name = name ;
  this.age = age ;
  this.score = score ;
 }
 public String toString()
 {
  return "姓名:"+this.name+",年龄:"+this.age+",成绩:"+this.score ;
 }
 // 覆写compareTo方法就是排序规则
 public int compareTo(Object obj)
 {
  Person p = (Person)obj ;
  if(p.score>this.score)
  {
   return 1 ;
  }
  else if(p.score<this.score)
  {
   return -1 ;
  }
  else
  {
   // 如果成绩相等则判断年龄
   if(p.age>this.age)
   {
    return 1 ;
   }
   else if(p.age<this.age)
   {
    return -1 ;
   }
   else
   {
    return 0 ;
   }
  }
 }
};
public class AdvDemo05
{
 public static void main(String args[])
 {
  Person p[] = new Person[5] ;
  p[0] = new Person("张三",20,96) ;
  p[1] = new Person("李四",19,96) ;
  p[2] = new Person("王五",19,97) ;
  p[3] = new Person("赵六",21,78) ;
  p[4] = new Person("孙七",20,80) ;

  Arrays.sort(p) ;
  for(int i=0;i<p.length;i++)
  {
   System.out.println(p[i]) ;
  }
 }
};
import java.util.* ;
class Person implements Comparable
{
 private String name ;
 private int age ;
 private float score ;
 public Person(String name,int age,float score)
 {
  this.name = name ;
  this.age = age ;
  this.score = score ;
 }
 public String toString()
 {
  return "姓名:"+this.name+",年龄:"+this.age+",成绩:"+this.score ;
 }
 // 覆写compareTo方法就是排序规则
 public int compareTo(Object obj)
 {
  Person p = (Person)obj ;
  if(p.score>this.score)
  {
   return 1 ;
  }
  else if(p.score<this.score)
  {
   return -1 ;
  }
  else
  {
   // 如果成绩相等则判断年龄
   if(p.age>this.age)
   {
    return 1 ;
   }
   else if(p.age<this.age)
   {
    return -1 ;
   }
   else
   {
    return 0 ;
   }
  }
 }
};
public class AdvDemo06
{
 public static void main(String args[])
 {
  Set s = new TreeSet() ;
  s.add(new Person("张三",20,96)) ;
  s.add(new Person("李四",19,96)) ;
  s.add(new Person("王五",19,97)) ;
  s.add(new Person("赵六",21,78)) ;
  s.add(new Person("孙七",20,80)) ;
  Iterator iter = s.iterator() ;
  while(iter.hasNext())
  {
   System.out.println(iter.next()) ;
  }
 }
};
//集合和类集接口的综合应用

import java.util.* ;

interface Book
{
 // 书的价格、书的名字、书的信息
 public float getPrice() ;
 public String getName() ;
 public String getInfo() ;
}

class ChildBook implements Book
{
 private String name ;
 private float price ;
 private String info ;

 public ChildBook(String name,float price,String info)
 {
  this.setName(name) ;
  this.setPrice(price) ;
  this.setInfo(info) ;
 }

 public String getName()
 {
  return this.name ;
 }
 public float getPrice()
 {
  return this.price ;
 }
 public String getInfo()
 {
  return this.info ;
 }
 public void setName(String name)
 {
  this.name = name ;
 }
 public void setPrice(float price)
 {
  this.price = price ;
 }
 public void setInfo(String info)
 {
  this.info = info ;
 }
 public String toString()
 {
  return "儿童书:书名:"+this.getName()+",价格:"+this.price+",简介:"+this.getInfo() ;
 }
};

class ComputerBook implements Book
{
 private String name ;
 private float price ;
 private String info ;

 public ComputerBook(String name,float price,String info)
 {
  this.setName(name) ;
  this.setPrice(price) ;
  this.setInfo(info) ;
 }

 public String getName()
 {
  return this.name ;
 }
 public float getPrice()
 {
  return this.price ;
 }
 public String getInfo()
 {
  return this.info ;
 }
 public void setName(String name)
 {
  this.name = name ;
 }
 public void setPrice(float price)
 {
  this.price = price ;
 }
 public void setInfo(String info)
 {
  this.info = info ;
 }
 public String toString()
 {
  return "电脑书:书名:"+this.getName()+",价格:"+this.price+",简介:"+this.getInfo() ;
 }
};

class BookShop
{
 private String name ;
 // 一个书店包含多种书
 private List allBooks ;

 public BookShop()
 {
  this.allBooks = new ArrayList() ;
 }
 public BookShop(String name)
 {
  this() ;
  this.setName(name) ;
 }

 // 得到全部的书
 public List getAllBooks()
 {
  return this.allBooks ;
 }

 public void append(Book book)
 {
  this.allBooks.add(book) ;
 }

 public void delete(Book book)
 {
  this.allBooks.remove(book) ;
 }

 // 根据书的名字,去找到一本书
 public Book findByName(String name)
 {
  // 从已有的数据中进行依次查询
  Book book = null ;
  Iterator iter = this.allBooks.iterator() ;
  while(iter.hasNext())
  {
   // 进行依次的比较
   Book temp = (Book)iter.next() ;
   if(name.equals(temp.getName()))
   {
    // 如果名字相等,则表示找到了
    book = temp ;
    break ;
   }
  }
  return book ;
 }

 // 书的检索,书的模糊查询
 public List index(String keyWord)
 {
  List l = new ArrayList() ;

  Iterator iter = this.allBooks.iterator() ;
  while(iter.hasNext())
  {
   Book b = (Book)iter.next() ;
   if(b.getName().indexOf(keyWord)!=-1)
   {
    l.add(b) ;
   }
  }

  return l ;
 }

 public void setName(String name)
 {
  this.name = name ;
 }
 public String getName()
 {
  return this.name ;
 }
};

public class ColDemo01
{
 public static void main(String args[])
 {
  Book b1 = new ChildBook("一千零一夜",10.0f,"一些传说故事") ;
  Book b2 = new ChildBook("小鸡吃大灰狼",20.0f,"一件奇怪的事情") ;
  Book b3 = new ChildBook("HALIBOTE",25.0f,"魔幻故事") ;
  Book b4 = new ComputerBook("JAVA",65.0f,"JAVA 语言的核心技术") ;
  Book b5 = new ComputerBook("C++",50.0f,"C++ 语言的核心技术") ;
  Book b6 = new ComputerBook("Linux",50.0f,"服务器搭建") ;

  BookShop bs = new BookShop("MLDN 网上书店") ;
  bs.append(b1) ;
  bs.append(b2) ;
  bs.append(b3) ;
  bs.append(b4) ;
  bs.append(b5) ;
  bs.append(b6) ;

  // print(bs.getAllBooks()) ;
  // print(bs.index("A")) ;
  // 假设将C++这本书从书店删除掉
  Book b = bs.findByName("C++") ;
  // System.out.println(b) ;
  bs.delete(b) ;
  print(bs.getAllBooks()) ;
 }
 public static void print(List all)
 {
  Iterator iter = all.iterator() ;
  while(iter.hasNext())
  {
   Book b = (Book)iter.next() ;
   System.out.println(b) ;
  }
 }
};


import java.util.* ;
class Person
{
 private String name ;
 private int age ;
 private List<Email> allEmails ;
 
 public Person()
 {
  this.allEmails = new ArrayList<Email>() ;
 }

 public Person(String name,int age)
 {
  this() ;
  this.setName(name) ;
  this.setAge(age) ;
 }
 public List getAllEmails()
 {
  return this.allEmails ;
 }
 public void setAllEmails(List allEmails)
 {
  this.allEmails = allEmails ;
 }
 public void setName(String name)
 {
  this.name = name ;
 }
 public void setAge(int age)
 {
  this.age = age ;
 }
 public String getName()
 {
  return this.name ;
 }
 public int getAge()
 {
  return this.age ;
 }
 public String toString()
 {
  return "姓名:"+this.getName()+",年龄:"+this.getAge() ;
 }
};
class Email
{
 private String url ;
 private String userName ;
 private String flag ;

 public Email(String url,String userName,String flag)
 {
  this.setUrl(url) ;
  this.setUserName(userName) ;
  this.setFlag(flag) ;
 }

 public void setUrl(String url)
 {
  this.url = url ;
 }
 public void setUserName(String userName)
 {
  this.userName = userName ;
 }
 public void setFlag(String flag)
 {
  this.flag = flag ;
 }
 public String getUrl()
 {
  return this.url ;
 }
 public String getUserName()
 {
  return this.userName ;
 }
 public String getFlag()
 {
  return this.flag ;
 }
 public String toString()
 {
  return "网站地址:"+this.getUrl()+",EMAIL名称:"+this.getUserName()+this.getFlag() ;
 }
};

public class ColDemo01
{
 public static void main(String args[])
 {
  Person p = new Person("LXH",28) ;
  Email e1 = new Email("www.163.com","mldnqa","@163.com") ;
  Email e2 = new Email("www.263.com","li_xing_hua","@263.net") ;
  Email e3 = new Email("www.163.com","mldnkf","@163.com") ;

  p.getAllEmails().add(e1) ;
  p.getAllEmails().add(e2) ;
  p.getAllEmails().add(e3) ;

  // 一个人拥有3个email地址
  // 通过输出体现
  List<Email> all = p.getAllEmails() ;
  Iterator iter = all.iterator() ;
  System.out.println(p) ;
  while(iter.hasNext())
  {
   Email e = (Email)iter.next() ;
   System.out.println("  |- "+e) ;
  }
 }
};

import java.util.* ;
class Student
{
 private String name ;

 private List allSubjects ;

 public Student()
 {
  this.allSubjects = new ArrayList() ;
 }
 public Student(String name)
 {
  this() ;
  this.setName(name) ;
 }

 public List getAllSubjects()
 {
  return this.allSubjects ;
 }
 
 public void setName(String name)
 {
  this.name = name ;
 }
 public String getName()
 {
  return this.name ;
 }
 public String toString()
 {
  return "学生姓名:"+this.getName() ;
 }
};
class Subject
{
 private String name ;
 
 private List allStudents ;

 public Subject()
 {
  this.allStudents = new ArrayList() ;
 }
 public Subject(String name)
 {
  this() ;
  this.setName(name) ;
 }

 public List getAllStudents()
 {
  return this.allStudents ;
 }

 public void setName(String name)
 {
  this.name = name ;
 }
 public String getName()
 {
  return this.name ;
 }
 public String toString()
 {
  return "课程名称:"+this.getName() ;
 }
};

public class ColDemo02
{
 public static void main(String args[])
 {
  Student s1 = new Student("张三") ;
  Student s2 = new Student("李四") ;
  Student s3 = new Student("王五") ;
  Student s4 = new Student("赵六") ;
  Student s5 = new Student("孙七") ;

  Subject su1 = new Subject("C++") ;
  Subject su2 = new Subject("JAVA") ;
  Subject su3 = new Subject("软件工程") ;

  // 多个学生选择同一门课程
  su1.getAllStudents().add(s1) ;
  su1.getAllStudents().add(s2) ;
  su1.getAllStudents().add(s3) ;

  su2.getAllStudents().add(s2) ;
  su2.getAllStudents().add(s4) ;

  su3.getAllStudents().add(s5) ;

  s1.getAllSubjects().add(su1) ;
  s2.getAllSubjects().add(su1) ;
  s2.getAllSubjects().add(su2) ;
  s3.getAllSubjects().add(su1) ;
  s4.getAllSubjects().add(su2) ;
  s5.getAllSubjects().add(su3) ;

  print(su1) ;
  print(su2) ;
  print(su3) ;

  System.out.println("------------------------") ;
  print(s1) ;
  print(s2) ;
  print(s3) ;
  print(s4) ;
  print(s5) ;
 }
 public static void print(Subject s)
 {
  System.out.println("* 课程信息:"+s) ;
  Iterator iter = s.getAllStudents().iterator() ;
  while(iter.hasNext())
  {
   System.out.println(" |- "+iter.next()) ;
  }
 }
 public static void print(Student s)
 {
  System.out.println("* 学生信息:"+s) ;
  Iterator iter = s.getAllSubjects().iterator() ;
  while(iter.hasNext())
  {
   System.out.println(" |- "+iter.next()) ;
  }
 }
};
//简单工厂模式
package org.lxh.demo ;
interface Fruit
{
 // 生长
 public void grow() ;
 // 采摘
 public void pick() ;
}
class Apple implements Fruit
{
 public void grow()
 {
  System.out.println("苹果在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘苹果。。。") ;
 }
};
class Orange implements Fruit
{
 public void grow()
 {
  System.out.println("橘子在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘橘子。。。") ;
 }
};
class Factory
{
 public static Fruit getFruitInstance()
 {
  return new Orange() ;
 }
};
public class FactoryDemo01
{
 public static void main(String args[])
 {
  Fruit f = Factory.getFruitInstance() ;
  f.grow() ;
  f.pick() ;
 }
};

package org.lxh.demo ;
interface Fruit
{
 // 生长
 public void grow() ;
 // 采摘
 public void pick() ;
}
class Apple implements Fruit
{
 public void grow()
 {
  System.out.println("苹果在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘苹果。。。") ;
 }
};
class Orange implements Fruit
{
 public void grow()
 {
  System.out.println("橘子在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘橘子。。。") ;
 }
};
class Factory
{
 public static Fruit getFruitInstance(String type)
 {
  Fruit f = null ;
  if("Apple".equals(type))
  {
   f = new Apple() ;
  }
  if("Orange".equals(type))
  {
   f = new Orange() ;
  }
  return f ;
 }
};
public class FactoryDemo02
{
 public static void main(String args[])
 {
  if(args.length==0)
  {
   System.out.println("必须输入一个要使用的名称") ;
   System.exit(1) ;
  }
  Fruit f = Factory.getFruitInstance(args[0]) ;
  if(f!=null)
  {
   f.grow() ;
   f.pick() ;
  }
  else
  {
   System.out.println("没有发现这个类型。") ;
  }
 }
};

package org.lxh.demo ;
interface Fruit
{
 // 生长
 public void grow() ;
 // 采摘
 public void pick() ;
}
class Apple implements Fruit
{
 public void grow()
 {
  System.out.println("苹果在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘苹果。。。") ;
 }
};
class Orange implements Fruit
{
 public void grow()
 {
  System.out.println("橘子在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘橘子。。。") ;
 }
};
class Cherry implements Fruit
{
 public void grow()
 {
  System.out.println("樱桃在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘樱桃。。。") ;
 }
};

class Banana implements Fruit
{
 public void grow()
 {
  System.out.println("香蕉在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘香蕉。。。") ;
 }
};

class Factory
{
 public static Fruit getFruitInstance(String type)
 {
  Fruit f = null ;
  // 通过Class类完成
  try
  {
   f = (Fruit)Class.forName("org.lxh.demo."+type).newInstance() ;
  }
  catch (Exception e)
  {
  }
  return f ;
 }
};
public class FactoryDemo04
{
 public static void main(String args[])
 {
  if(args.length==0)
  {
   System.out.println("必须输入一个要使用的名称") ;
   System.exit(1) ;
  }
  Fruit f = Factory.getFruitInstance(args[0]) ;
  if(f!=null)
  {
   f.grow() ;
   f.pick() ;
  }
  else
  {
   System.out.println("没有发现这个类型。") ;
  }
 }
};

package org.lxh.demo ;
import java.io.* ;
import java.util.* ;
interface Fruit
{
 // 生长
 public void grow() ;
 // 采摘
 public void pick() ;
}
class Apple implements Fruit
{
 public void grow()
 {
  System.out.println("苹果在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘苹果。。。") ;
 }
};
class Orange implements Fruit
{
 public void grow()
 {
  System.out.println("橘子在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘橘子。。。") ;
 }
};
class Cherry implements Fruit
{
 public void grow()
 {
  System.out.println("樱桃在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘樱桃。。。") ;
 }
};

class Banana implements Fruit
{
 public void grow()
 {
  System.out.println("香蕉在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘香蕉。。。") ;
 }
};

class Factory
{
 public static Fruit getFruitInstance(String type)
 {
  Fruit f = null ;
  // 通过Class类完成
  try
  {
   f = (Fruit)Class.forName(type).newInstance() ;
  }
  catch (Exception e)
  {
   System.out.println(e) ;
  }
  return f ;
 }
};

// 定义一个新类,此类可以从键盘输入数据
class InputData
{
 BufferedReader buf = null ;
 public InputData()
 {
  buf = new BufferedReader(new InputStreamReader(System.in)) ;
 }
 public String getString()
 {
  String str = null ;
  try
  {
   str = buf.readLine() ;
  }
  catch (Exception e)
  {
  }
  return str ;
 }
};

public class FactoryDemo05
{
 public static void main(String args[])
 {
  Properties p = new Properties() ;
  p.setProperty("a","org.lxh.demo.Apple") ;
  p.setProperty("o","org.lxh.demo.Orange") ;
  p.setProperty("b","org.lxh.demo.Banana") ;
  p.setProperty("c","org.lxh.demo.Cherry") ;
  System.out.println(p) ;
  
  // 加入一个可以从键盘输入数据的类
  System.out.print("输入要使用的子类代码:") ;
  String code = new InputData().getString() ;
  System.out.println(p.getProperty(code)) ;
  Fruit f = Factory.getFruitInstance(p.getProperty(code)) ;
  if(f!=null)
  {
   f.grow() ;
   f.pick() ;
  }
  else
  {
   System.out.println("没有发现这个类型。") ;
  }
 }
};

package org.lxh.demo ;
import java.io.* ;
import java.util.* ;
interface Fruit
{
 // 生长
 public void grow() ;
 // 采摘
 public void pick() ;
}
class Apple implements Fruit
{
 public void grow()
 {
  System.out.println("苹果在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘苹果。。。") ;
 }
};
class Orange implements Fruit
{
 public void grow()
 {
  System.out.println("橘子在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘橘子。。。") ;
 }
};
class Cherry implements Fruit
{
 public void grow()
 {
  System.out.println("樱桃在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘樱桃。。。") ;
 }
};

class WaterMelon implements Fruit
{
 public void grow()
 {
  System.out.println("西瓜在生长。。。") ;
 }
 public void pick()
 {
  System.out.println("摘西瓜。。。") ;
 }
};

class Banana implements Fruit
{
 public void grow()
 {
  System.out.println("香蕉在生长。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘香蕉。。。") ;
 }
};

class DD implements Fruit
{
 public void grow()
 {
  System.out.println("DD。。。 ") ;
 }
 public void pick()
 {
  System.out.println("摘DD。。。") ;
 }
};

class Factory
{
 public static Fruit getFruitInstance(String type)
 {
  Fruit f = null ;
  // 通过Class类完成
  try
  {
   f = (Fruit)Class.forName(type).newInstance() ;
  }
  catch (Exception e)
  {
   System.out.println(e) ;
  }
  return f ;
 }
};

// 定义一个新类,此类可以从键盘输入数据
class InputData
{
 BufferedReader buf = null ;
 public InputData()
 {
  buf = new BufferedReader(new InputStreamReader(System.in)) ;
 }
 public String getString()
 {
  String str = null ;
  try
  {
   str = buf.readLine() ;
  }
  catch (Exception e)
  {
  }
  return str ;
 }
};

class Init
{
 public static Properties getPropertiesInit()
 {
  Properties p = new Properties() ;
  try
  {
   p.loadFromXML(new FileInputStream("lxh.xml")) ;
  }
  catch (Exception e)
  {
  }
  return p ;
 }
};

public class FactoryDemo06
{
 public static void main(String args[])
 {
  Properties p = new Properties() ;
  p = Init.getPropertiesInit() ;
  System.out.println(p) ;
  
  // 加入一个可以从键盘输入数据的类
  System.out.print("输入要使用的子类代码:") ;
  String code = new InputData().getString() ;
  System.out.println(p.getProperty(code)) ;
  Fruit f = Factory.getFruitInstance(p.getProperty(code)) ;
  if(f!=null)
  {
   f.grow() ;
   f.pick() ;
  }
  else
  {
   System.out.println("没有发现这个类型。") ;
  }
 }
};

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>MLDN --&gt; LXH</comment>
<entry key="b">org.lxh.demo.Banana</entry>
<entry key="a">org.lxh.demo.Apple</entry>
<entry key="o">org.lxh.demo.Orange</entry>
<entry key="c">org.lxh.demo.Cherry</entry>
<entry key="d">org.lxh.demo.DD</entry>
</properties>

import java.io.* ;
import java.util.* ;
public class Demo
{
 public static void main(String args[]) throws Exception
 {
  Properties p = new Properties() ;
  /*
  p.setProperty("a","org.lxh.demo.Apple") ;
  p.setProperty("o","org.lxh.demo.Orange") ;
  p.setProperty("b","org.lxh.demo.Banana") ;
  p.setProperty("c","org.lxh.demo.Cherry") ;
  // 在文件中保存一段数据,此数据为以上的数据内容
  p.storeToXML(new FileOutputStream("lxh.xml"),"MLDN --> LXH") ;
  */
  // 需要从文件中读取要Properties中的属性
  p.loadFromXML(new FileInputStream("lxh.xml")) ;
  System.out.println(p) ;
 }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值