类的构造方法的重载
一、复习:构造方法的用途
类的构造方法可以有多个参数
要实例化一个类,必须调用它(类)的构造方法。
构造方法一般用来初始化类的成员,即对类的属性进行赋值。
二、为什么要使用 构造方法的重载
确保对象在实例化时有相应的初始值
三、构造方法重载举例
添加了新的构造方法后
如果需要无参的构造方法,则需要自己来写
四、类图
1.为什么需要看类图?
类有几个构造方法,构造方法的参数都有什么
弄清这2个问题后,我们才能实例化类。
实例化之后才知道哪些属性可以用,哪些方法可以调用。
而我们就不需要知道方法里的内容
用别人写的类,我们只需:
1.怎样实例化
2.它有哪些属性
3.它有哪些方法,这些方法是干什么用的,功能是什么。
至于这些方法是怎样实现,我们一般可以不用关心。
类图:可以一目了然的知道类的大致情况。
2.通用类图
-私有
+共有
3.C#中的类图
五、析构函数
相当于垃圾回收机制 系统自带自运行 了解
六、构造方法的作业
可变参数params
任何类型都可以自动转换为object 类型
最多可传5个参数,超过5个怎么办?
5个以上参数,统一调用如下版本
数组前加params ,参数传递时自动把多个参数组成一个数组。
下面这样写是不行的
可变参数必须放在最后,可以这样:
第3课 命名空间 namespace
.net命名空间是逻辑上的层次关系
不是物理上的层次关系
二、Ctrl+.快速引用命名空间?
三、根命名空间
System
String 类
一、字符串的处理
字符串的不可变性
二、字符串数组
char[] strs=str.ToCharArray();
三、长度 大小写转换
namespace 字符串_string
{
class Program
{
static void Main(string[] args)
{
string msg = "helLo,world!", mss = "HELLO,WORLD!";
if (msg.Equals(mss, StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine("这两句话一样");
}
char[] msgs = msg.ToCharArray();
msgs[3] = 'l';
msg = new string(msgs);
Console.WriteLine(msg);
for (int i = 0; i < msgs.Length; i++)
{
Console.WriteLine(msgs[i]);
}
msg = msg.ToUpper();
if (msg == mss)
{
Console.WriteLine("这两句话一模一样");
}
Console.WriteLine(msg);
Console.ReadKey();
}
}
四、常用方法
Length //获得字符串中字符的个数。”aA我你他”→5
方法
IsNullOrEmpty() 静态方法,判断为null或者为””
ToCharArray() 将string转换为char[]
ToLower() 小写,必须接收返回值。(因为:字符串的不可变);
ToUpper() 大写。
Equals() 比较两个字符串是否相同。 忽略大小写的比较,StringComparation.
IndexOf() 如果没有找到对应的数据,返回-1.//面试题:统计一个字符串中,”天安门”出现的次数。
LastIndexOf() 如果没有找到对应的数据,返回-1
Substring() //2个重载,截取字符串。
Split() //分割字符串。
Join() 静态方法
Format () 静态方法
Replace() ;
Trim();
不分大小写进行比较
五、字符串的分割 Split
namespace 字符串分割
{
class Program
{
static void Main(string[] args)
{
string str = "2008-08-08",str2="2008/09-02";
char[] move = { '-','/'};
string[] date = str2.Split(move, StringSplitOptions.None);
string[]words =str.Split('-');
Console.WriteLine("你输入的是{0}年{1}月{2}日",words);
Console.WriteLine("你输入的是{0}年{1}月{2}日", date[0], date[1], date[2]);
Console.ReadKey();
}
}
}
六 其他常用方法(看MSDN)
继承
class Person
{
}
class Chinese : Person
{
}