1.构造的概念:是类的一种方法名和类名相同,没有返回值类型,
并且主要完成对象的处始化工作
并且主要完成对象的处始化工作
(定义一个空类,可以有n个构造。编译器会在底层补全代码,生成无参构造函数,如果定义了构造,底层将不会生成无参构造。)
2.new SE() 三层含义:1.开辟空间 2.调用构造 3.创建对象
C#关键字扩充解释:
1. new :
开辟空间
调用构造
实例化对象
2. this:
当前类的实例,用来区分入参和成员变量
3. void
void修饰的方法表示返回值类型为空,并不代表没有返回值
二.构造函数
特点: 1.方法名与类名相同
2.没有返回值类型
3.主要完成对象的初始化工作
无参构造:
语法: 访问修饰符 类名(){
//方法体
}
带参的函数构造
语法:访问修饰符 类名(参数列表){
//方法体
}
优点 : 1.灵活性更好
2.通过参数来动态控制对象的特征
隐私构造函数
在没有手动编写构造时,系统会给我们自动生成一个无参构造.
系统为什么自动生成无参构造?
为了给将来给高级框架,高级框架在底层可以通过无参构造给我们的
类创建对象
类创建对象
方法重载:
特点:
1 . 方法名相同
2. 方法参数类型不同或者参数个数不同
3.在同一个类中 并且 方法名及参数列表相同的方法,仅是返回值类型不同,不能称为方法重载
方法重载不仅能避免命名的麻烦,还能使调用者不必判断方法名就可直接调用
构成方法重载的要素包括 3个
A 方法名相同
C 参数列表不同
D 在同一个类中
示例代码:
public void Say() { }
public string Say(int age)
{
return "1";
}
{
return "1";
}
public void Eat(int age,string name)
{
{
}
public void Eat(string name, int age)
{
{
}
对象交互:
1.在面向对象的世界里,万物皆对象。
2.对象与对象相互独立,互不干涉
3.每个类都有自己的特性和功能,我们把它们封装为属性和方法
4.对象之间通过属性和方法进行交互
5.可认为方法的参数和返回值都是对象间相互传递的消息
示例代码:
//遥控器
public class Contol
{
public void Open(Tv tv)
{
tv.Open();
}
public void Close(Tv tv)
{
tv.Close();
}
public void ChangeChannel(Tv tv,string channelName)
{
tv.ChangeChannel(channelName);
}
}
public class Contol
{
public void Open(Tv tv)
{
tv.Open();
}
public void Close(Tv tv)
{
tv.Close();
}
public void ChangeChannel(Tv tv,string channelName)
{
tv.ChangeChannel(channelName);
}
}
/// <summary>
/// 电视机
/// </summary>
public class Tv
{
//维护一个状态
bool state = false;//关闭
public void Open()
{
if (state==false)//关闭的
{
state = true;//状态切换到开 机状态
Console.WriteLine("电视机打开啦!!!!!~~~~~");
}
}
public void Close()
{
if (state == true)//开着的
{
state = false;//状态切换到关 机状态
Console.WriteLine("电视机关闭啦!!!!!~~~~~");
}
}
public void ChangeChannel(string channelName)
{
if (state==true)
{
Console.WriteLine("您已经成功切换到"+channelName);
}
}
{
if (state==true)
{
Console.WriteLine("您已经成功切换到"+channelName);
}
}
}
static void Main(string[] args)
{
//01.买一个电视机
Tv tv = new Tv();
{
//01.买一个电视机
Tv tv = new Tv();
//02.买一个遥控器
Contol control = new Contol();
//03.进行操作
control.Open(tv);
control.ChangeChannel(tv, "凤凰卫视");
control.Close(tv);
control.Open(tv);
control.ChangeChannel(tv, "凤凰卫视");
control.Close(tv);
}