// 输出方法
public void PrintChild() {
Console.WriteLine(\, name, age); } }
public class Program {
public static void Main() {
//使用new关键字创建对象,new后是调用的构造函数 Child child1 = new Child(\, 11); Child child2 = new Child(\, 10); Child child3 = new Child(); // 显示结果
Console.Write(\); child1.PrintChild();
Console.Write(\); child2.PrintChild();
Console.Write(\); child3.PrintChild(); Console.ReadLine(); } } }
访问修饰符public、protected、private的含义,静态成员的关键字是什么? public:指任何外部的类都可以不受限制的存取这个类的方法和数据成员 protected:除了本身的类可以使用之外,任何继承自此类了的类都可以存取 private:指类中的所有方法和数据成员只能在此类中使用,外部无法存取 静态成员关键字:static 2、构造函数特点:
构造函数总是和其类名相同 构造函数不包括任何返回值 每个类至少有一个构造函数
构造函数可以用private修饰吗?(可以) 3、结构和类的区别
(1)结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上 (2)对结构中的数据进行操作,比类或对象中的数据进行操作速度要快
(3)一般用结构存储多种数据类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高
(凡是定义为结构的,都可以用类来定义,创建轻量级对象时可以使用结构)
namespace ValueTransferExample {
class Program {
public static void AddOne(int a)
{
a++; }
static void Main() {
int a = 3;
Console.WriteLine(\调用AddOne之前,a={0}\, a); AddOne(a);
Console.WriteLine(\调用AddOne之后,a={0}\, a); Console.ReadLine(); } } }
例4-7
namespace ReferenceTransferExample {
class Program {
public static void AddOne(ref int a) {
a++; }
static void Main() {
int x = 3;
Console.WriteLine(\调用AddOne之前,x={0}\, x); AddOne(ref x);
Console.WriteLine(\调用AddOne之后,x={0}\, x); Console.ReadLine(); } } }
重载方法如何调用。例4-10
namespace MethodOverloadingExample {
class Program {
public static int Add(int i, int j) {
return i + j; }
public static string Add(string s1, string s2) {
return s1 + s2; }
public static long Add(long x) {
return x + 5; }
static void Main() {
Console.WriteLine(Add(1, 2)); Console.WriteLine(Add(\, \)); Console.WriteLine(Add(10)); //按回车键结束
Console.ReadLine(); } } }
5、课后习题
1、编写一个控制台应用程序,完成下列功能。
(1)创建一个类,用无参数的构造函数输出该类的类名。
(2)增加一个重载的构造函数,带有一个string类型的参数,在此构造函数中将传递的字符串打印出来。 (3)在Main方法中创建属于这个类的一个对象,不传递参数。
(4)在Main方法中创建属于这个类的另一个对象,传递一个字符串“This is a string.”。 (5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象。 (6)写出运行程序应该输出的结果。 【解答】
using System; class Test1 {
public Test1() {
Console.WriteLine(this); }
public Test1(string str) {
Console.WriteLine(str); }
public static void Main() {
Test1 t1 = new Test1();
Test1 t2 = new Test1(\ Test1[] t3 = new Test1[5]; } }
输出结果:
Test1
This is a string.
4、结构和类的区别是什么? 【解答】
1)结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上。 2)对结构中的数据进行操作比对类或对象中的数据进行操作速度要快。
3)一般用结构存储多种类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。
五、面向对象的高级编程
1、面向对象编程的三大原则:封装、继承、多态
2、类对象的构造顺序。例5-1
namespace InheritanceExample
{
public class Animal {
public int MyProperty { get; set; } public Animal() {
Console.WriteLine(\基类构造函数:Hello, Animal!\); }
public void Eat() {
Console.WriteLine(\基类方法:Eating\); } }
public class Cat : Animal {
public Cat() {
Console.WriteLine(\扩充类构造函数:Hello, Cat!\); }
public void Walk() {
Console.WriteLine(\基类方法:Walk\); } }
class Program {
static void Main(string[] args) {
Cat cat = new Cat(); cat.Eat();
Console.ReadLine(); } } }
3、virtual、override关键字和new关键字的含义
virtual:表示某个方法或者属性可以被扩充类中同名的方法或者属性重写 new:隐藏基类中同名的方法或属性 六、窗体、控件和组件
1、窗体的创建、显示、隐藏和关闭
Show方法和ShowDialog方法的区别:Show方法将窗体显示出来后就立即返回,接着执行Show方法后面的语句,因此打开窗口不会阻止用户与应用程序中的其他窗口交互,此类型的窗口称为“无模式”窗口。
ShowDialog方法将窗体显示出来以后,在该窗体关闭之前应用程序中的所有其他窗口都会被禁用,并且仅在该窗体关闭后才继续执行ShowDialog方法后面的代码,此类型窗口称为“模式”窗口。 Hide方法和Close方法的区别:
Hide方法是将其隐蔽,隐藏后其实例仍然存在。Close方法是直接关闭窗口。 2、如何设置窗体为多文档窗体? 用IsMDIContainer属性 3、表6-2的常用属性
Enabled:决定控件是否可用,取值为true时可用,取值为false时不可用。 BackColor:设置控件的背景色。
ForeColor:设置控件的前景色,即控件上文本的颜色。
Visible:决定控件是否可见,取值为true时可见,取值为false时不可见。 4、控件的Dock属性和Anchor属性的含义
Dock:其用途是使控件与窗体边缘对齐。此属性制定控件在窗体中的驻留位置,其属性设置有Left<停靠窗体的左侧>Right、Top、Bottom,Fill<占据窗体中的所有剩余空间>None<不在任何位置停靠,它显示在由Location属性指定的位置> 5、TextBox控件常用属性
Multiline:决定文本框控件是否可以包含多行内容。当该属性为false时,TextBox的Width属性可以更改,但Height属性是固定的,即只允许输入单行文本,当该属性值为true时,TextBox的Width属性和Height属性均可更改,也可直接由鼠标拉动改变文本框的大小,以支持多行文本的输入和显示。 PasswordChar:作为密码输入文本框,在输入字符时,文本框中所要显示代替密码的屏蔽字符。(注意:TextBox控件还有一个UseSystemPasswordChar属性,若该属性为true,则无论在PasswordChar中指定了哪一个字符,最终在TextBox中的文本只能以系统默认的密码字符*来显示)
6、CheckBox控件的CheckState属性和Checked属性,Checked属性返回值true或false。 CheckState属性返回Checked(表示选中)或Unchecked(表示未选中)枚举值之一。 7、ComboBox控件的DropDownStyle属性的含义
DropDownStyle属性:表示组合框的显示样式,其共有三种选择样式: Simple:同时显示文本框和列表框,文本框可以被编辑。
DropDown:只显示文本框,隐藏列表框,且文本框可以被编辑。 DropDownList:只显示文本框,隐藏列表框,但文本框不可被编辑。 8、课后习题 1、填空题
(1)使控件是否可以对用户交互做出响应的属性是(Enabled)。 (2)控制控件是否显示的属性是(Visible)。
(3)若要在文本框中输入密码,常指定(PasswordChar)属性。
(4)若某复选框某时刻【CheckState】属性的值为Indeterminate,则其属性【Checked】的值为(true)。 (5)使用(GroupBox)或(Panel)控件可以将多个RadioButton控件分为两个单选组。
(6)若不希望用户在ComboBox控件中编辑文本,则应将属性(DropDownStyle)的属性值设置为DropDownList。
七、目录与文件管理
1、目录与文件操作的命名空间是 System.IO
2、操作目录的类Directory类和DirectoryInfo类有什么区别
DirectoryInfo类必须被实例化后才能使用,而Directory类则只提供了静态的方法,程序中如果多次使用某个对象,一般用DirectoryInfo类,如果仅执行某一个操作,则使用Directory类提供的静态方法效率更高一些。
2·1、目录的创建、删除方法
创建目录:public static DirectoryInfo CreateDirectory(string path) 其中path为要创建的目录路径。
例:在C盘根目录下创建一个名为test的目录: Directory.CreateDirectory(”C:\\\\test”); 创建多级目录时:
Directory.CreateDirectory(”C:\\\\test\\\\t1\\\\t2”); 删除目录:
public static void Delete(string path,bool recursive)
其中path为要移出目录名称,path参数不区分大小写,可以是相对于当前工作目录的相对路径,
也可以是绝对路径。Recursive是一个布尔值,如果要移除path中的目录为true,否则为false。
例:删除C盘下test及子目录和文件