Beginning C# Objects课后习题1

Beginning C# Objects From Concepts to code课后练习
第四章: 对象互操作
Page 116 
3 根据代码判断违反OO约定的地方
第一个例子:
A 不应该声明一个public的attribute, 这破坏了OO的封装性
B private string address 应该有相应的取值赋值方法,除非姿势自己内部用,但是地址这个值应该是需要被引用的
C numberOfFloors定义为int,但是set函数却是Float 型
第二个例子:
A 取值赋值方法中类型的定义应该和变量的定义一致,或者更严格
B address应该有相应的取值赋值方,除非是内部应用

2 根据代码判断类的特征
答:从代码来看,Student类的大概定义

public class Student
{
 
private major string;
 
private professor1 Professor 
 
public string Major{
 
get{
  
return major
 }

 
set{
  major 
= value}

 }

 
public bool HasAdvisor()
 
{//判断该学生是否有数学导师
  }

  
 
public bool DesignaTeAdvisor(professor professor1)
 
{//判断该学生是否有数学导师
  }

 }


所以Property头有:
private major string
private professor1 Professor   
方法头:
public bool HasAdvisor()
public bool DesignaTeAdvisor(professor professor1)

1 根据题目定义一个Book类
答:定义book内如下:

public class Book
{
 
//attributes
 private author Author;
 
private title string;
 
private noOfpages int;
 
private bool fiction;
 
public string Title{
 
get{
  
return title;
  }

 }

 
public int NoOfpages{
 
get{
  
return noOfpages;
  }

 }

 
public bool IsFiction{
   
return fiction;
  }

 
public void SetFiction(bool x){
  fiction
=x;
  }

 
//定义一个方法, 此类方法可能还有很多
 public string GetBookName{
 
//添加GetBookName代码
 }
  
}


public class Author
{
 
//attributes
 private name string;
 
private sex string;
 
public string Name{
 
get{
  
return name;
  }

 
set{
  name
=value;
 }

 }

 
public string Sex{
 
get{
  
return name;
  }

 
set{
  name
=value;
 }

 }

}

posted on 2007-04-11 14:24  阿宁  阅读(490)  评论(0)    收藏  举报

导航