1、创建一个EatBehavior接口,该接口提供一个eat()抽象方法,为该接口提拱两个实现类:中餐和西餐(ChineseMeal和WesternStyleFood),创建一个Person抽象类,该类中有描述人的姓名和年龄和吃饭(eatBehavior)三个属性,分别可通过get/set访问器,并有一个performEat()方法(该方法通过调用EatBehavior接口的eat方法来完成功能)和三个属性的构造器;中国人(Chinese)和美国人(American)两个类分别继承Person类,中国人吃中餐,美国人吃西餐,创建一个Test类进行测试。
interface EatBehavior
{
void Eat();
}
class ChineseMeal : EatBehavior
{
public void Eat()
{
Console.WriteLine(“中餐”);
}
}
class WesternStyleFood : EatBehavior
{
public void Eat()
{
Console.WriteLine(“西餐”);
}
}
public abstract class Person
{
protected Person()
{ }
public string Name { get; set; }
public int Age { get; set; }
public string EatBehavior { get; set; }
protected Person(string name,int age,string eatBehavior )
{
Name = name;
Age = age;
EatBehavior = eatBehavior;
}
void performEat(EatBehavior eat)
{
eat.Eat();
}
}
class Chinese : Person
{
public Chinese(string name, int age, string eatBehavior) : base(name, age, eatBehavior)
{
Console.Write(name+eatBehavior);
}
public void performEat()
{
Console.WriteLine("中国人");
}
}
class American : Person
{
public American(string name, int age, string eatBehavior) : base(name, age, eatBehavior)
{
Console.Write(name + eatBehavior);
}
public void performEat()
{
Console.WriteLine("美国人");
}
}
static void Main(string[] args)
{
Person P = new Chinese("中国人",21,"吃");
EatBehavior eat = new ChineseMeal();
eat.Eat();
P = new American("美国人", 21, "吃");
eat = new ChineseMeal();
eat.Eat();
}
2、(Map)已知某学校的教学课程内容安排如下:
老师 课程
Tom CoreJava
John Oracle
Susan Oracle
Jerry JDBC
Jim Unix
Kevin JSP
Lucy JSP
完成下列要求:
1) 使用一个 Dictionary,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。
2) 增加了一位新老师 Allen 教 JDBC
3) Lucy 改为教 CoreJava
4) 遍历 Map,输出所有的老师及老师教授的课程
5) 利用 Map,输出所有教 JSP 的老师。
class Map
{
public void GetMap()
{
Dictionary<string, string> map = new Dictionary<string, string>();
map.Add("Tom", "CoreJava");
map.Add("John", "Oracle");
map.Add("Susan", "Oracle");
map.Add("Jerry", "JDBC");
map.Add("Kevin", "JSP");
map.Add("Lucy", "JSP");
map.Add("Allen ", "JDBC");
map["Lucy "] = "CoreJava";
foreach (var item in map)
{
Console.WriteLine(item.Key+"\t"+item.Value);
}
foreach (var item in map)
{
if (map.ContainsValue("JSP"))
{
Console.WriteLine(item.Key);
}
}
}
}
3、完成下面的要求
1)创建一个 List,在 List 中增加三个工人,基本信息如下:
姓名 年龄 工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
2)在 li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资 3300
3)删除 wang5 的信息
4)利用 for 循环遍历,打印 List 中所有工人的信息
class Worker
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
private float salary;
public float Salary
{
get { return salary; }
set { salary = value; }
}
private Address address;
public Address Address
{
get { return address; }
set { address = value; }
}
public Worker()
{
}
public Worker(string name, int age,float salery,Address address)
{
Name = name;
Age = age;
Salary = salery;
Address = address;
}
}
class Address
{
private string addressNmae;
public string AddressNmae
{
get { return addressNmae; }
set { addressNmae = value; }
}
private string zipCode;
public string ZipCode
{
get { return zipCode; }
set { zipCode = value; }
}
public Address()
{ }
public Address(string addressNmae, string zipCode)
{
AddressNmae = addressNmae;
ZipCode = zipCode;
}
}
List<List> list = new List<List>();
List l1 = new List("zhang3",18,3000);
List l2 = new List("li4", 25, 3500);
List l3 = new List("wang5", 22, 3200);
list.Add(l1);
list.Add(l2);
list.Add(l3);
list.Insert(1,new List("zhao6",24,3300));
foreach (var item in list)
{
if (item.Name.Equals("wang5"))
{
list.Remove(item);
}
}
foreach (var item in list)
{
Console.WriteLine(item.Name+"\t"+item.Age + "\t" +item.Salary);
}
4、(Set)有如下两个类(只写了类的属性,请自行添加相应的构造方法和 get/set 方法)
要求,完善 Worker 和 Address 类,使得 Worker 对象能够正确放入 HashSet 中:即将 Worker 放入 HashSet 中时不会出现重复元素。并编写相应测试代码。
class Worker
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
private float salary;
public float Salary
{
get { return salary; }
set { salary = value; }
}
private Address address;
public Address Address
{
get { return address; }
set { address = value; }
}
public Worker()
{
}
public Worker(string name, int age,float salery,Address address)
{
Name = name;
Age = age;
Salary = salery;
Address = address;
}
}
class Address
{
private string addressNmae;
public string AddressNmae
{
get { return addressNmae; }
set { addressNmae = value; }
}
private string zipCode;
public string ZipCode
{
get { return zipCode; }
set { zipCode = value; }
}
public Address()
{ }
public Address(string addressNmae, string zipCode)
{
AddressNmae = addressNmae;
ZipCode = zipCode;
}
}
Address add = new Address("埃及","124356");
Worker W1 = new Worker("张三",18,10000,add);
Worker W2 = new Worker("李四",20,10000,add);
HashSet<Worker> t1 = new HashSet<Worker> {W1};
bool b = false;
foreach (var item in t1)
{
if (!item.Name.Equals(W2.Name))
{
b = true;
}
}
if (b)
{
t1.Add(W2);
}
foreach (var item in t1)
{
Console.WriteLine(item.Name);
}