-
将set属性删除就是只读属性,则Main中不能为属性赋值了,想要赋值
1.可以得在Child.cs中为字段直接赋值:private string sex="男";同样的也不能在Main中修改;
2.用构造方法
查看全部 -
C#属性封装
封装:隐藏对象的信息留出访问的接口
选择字段名,ctrl+r+e,实现快速封装
手动封装:
a.将类中该字段public改为private,将字段隐藏起来
b.留出隐藏字段的访问接口也就是属性,用 public 定义属性,且属性数据类型与字段属性一致,属性名字也字段名字相近,但要遵循首字母大写。
不设置set就默认只读
在对象中,封装的属性名字会自动改为属性的名字注意访问器的花括号{ ;}
namespace Kindergarten
{
/// <summary>
/// 小朋友
/// </summary>
class Child
{//访问修饰符:public公共的 private私有的(默认访问修饰符) 封装快捷键:Ctrl+R+E
private string _name;//姓名
/// <summary>
/// 姓名
/// </summary>
public string Name
{
get{return _name;}
set{_name=value;}
}
private string _sex;//性别
public string Sex
{
get { return _sex; }
set { _sex = value; }
}
private int _age;//年龄
public int Age
{
get { return _age; }
set { _age = value; }
}
private int _height;//身高
public int Height
{
get { return _height; }
set { _height = value; }
}
/// <summary>
/// 踢足球
/// </summary>
public void PlayBall()
{
Console.WriteLine("耶!我是小小C罗!");
}
}
}查看全部 -
C#封装的概念
封装:①隐藏对象的信息 ②留出访问的接口
在C#中,我们常使用属性对字段进行封装。*属性是封装字段的手段在使用private时,使用get和set就能对private进行访问
private string _sex;//隐藏的字段
public string Sex//公开的属性
{
//get、set访问器
get//只读
{return _sex;}
set//只写
{_sex=value;}
}查看全部 -
C#访问修饰符
所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。可使用一下访问修饰符指定声明类型或成员时类型或成员的可访问性。
public
同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。public 公共的 :可以在其他类中访问private
只有同一类或结构中的代码可以访问该类型或成员。private 私有的:不能在其他类中访问,如没有设置访问修饰符,默认为privateprotected
只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员。
internal
同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以。
protected internal
由其声明的程序集或另一个程序集派生的类中任何代码都可访问的类型或成员。从另一个程序集进行访问必须在类声明中发生,该类声明派生自其中声明受保护的内部元素的类,并且必须通过派生的类类型的实例发生。在自定义的类中的字段和方法前加上public访问修辞符,可以使得Main方法能访问此类的字段和方法。而private私有的,它是默认的访问修辞符。
实例化Child类的对象并为字段赋值,前提是在Child类中设置字段和方法为public。
例:
class Child
{
public string _name;
public string _sex;
public int _age;
public int _height;
public void PlayBall()
{
Console.WriteLine(“我是小小罗!”);
}
}
而在Main方法中调用如下:
Static void Main(string[] args)
{
Child xiaoMing=new Child();//实例化了Child类的对象
xiaoMing._name=”马小明”;//为字段赋值,用对象.字段的格式
xiaoMing._sex=”男”;
xiaoMing._age=6;
xiaoMing._height=120;
Console.WriteLine(“我叫”+xiaoMing._name+”,今年”+xiaoMing._age+”岁。”);
xiaoMing.PlayBall();//调用踢球的方法
}查看全部 -
C#对象实例化
对象是真实存在的,类是对对象共同特征的抽象和概况
访问字段的方法是对象名.字段名=赋的值
保护限制public
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Child xiaoming = new Child();//实例化了child类的对象
xiaoming.name = "马晓明";//为字段赋值
xiaoming .sex="男";
xiaoming.age=6;
Console.WriteLine("我叫"+xiaoming.name+",今年"+xiaoming.age+"岁;");
xiaoming.PlayBall();//调用踢球的方法
Console.ReadKey();//调试防止闪退
}
}
public class Child
{
public string name;
public string sex;
public int age;
public void PlayBall()
{
Console.WriteLine("吼啊");
}
}
}查看全部 -
C#定义类
1、添加Child类:项目名称Kindergarten——右键——添加——类——输入类名
用/// 给类添加注释
2、类的成员包括字段和属性和方法,字段和属性用来描述类的静态特征,方法描述类的动态行为
方法:一段有特定功能的代码块,{}里是方法体 ,PlayBall是方法名
代码: class Program
{
static void Main(string[] args)
{
Child xiaoMing = new Child();
xiaoMing.PlayBall();
}
}
/// <summary>
/// Child 类
/// </summary>
class Child
{
string name;// 姓名
string sex;//性别
int sge;//年龄
int height;//身高
/// <summary>
/// 踢足球
/// </summary>
public void PlayBall()
{
Console.WriteLine("我喜欢踢足球");
}
}
注意:因为方法void PlayBall是非静态方法,所以要调用PlayBall方法 必须先实例化对象 Child xiaoMing=new Child();再调用 xiaoMing.PlayBall();
若方法为静态方法 则只需在方法前加public 即可调用 public void PlayBall{}
PlayBall();
注:有static修饰的就是静态方法 没有static修饰的就是非静态方法。查看全部 -
类和对象的概念
1、 面向对象设计思想使用三种基本的设计手段:封装、继承、多态来模拟现实世界的事物。
封装:
2、对象:现实生活中对我们有意义的一切事物都可称为对象。(一个人、一棵树、一首歌曲、一件工作都可以被称为对象)
3、对象和类的关系
举例一个小朋友 :小明 男孩 6岁 120cm 喜欢踢足球
现实中有很多小朋友有姓名、性别、年龄、身高 、爱好这些特征 ,这些特征总结起来就是类。
特征可分为两类:一种像姓名、性别、身高、年龄这些特征,这些特征通常为名词,可以用一个字符串或数字形容 ,称之为静态特征。在C#中使用字段或属性来表示静态特征。
另外一种特征:是对象的一种动态行为,例如:踢足球 这些特征通常为动词,很难用数字或文字来描述,在c#中用方法来实现这些动态行为。
4、描述一个小朋友对象步骤:首先定义一个小朋友的类,类是抽象和概括的。在类中定义字段描述小朋友的静态特征。定义方法体现小朋友的动态行为。小朋友类中有那些特征,小朋友对象就有那些特征。然后创建小朋友类的对象,这个过程 称之为实例化。通常使用 Child xiaoMing=new Child()命令来实例化一个对象
xiaoMing就是对象的名字 他的命名规则和一个普通的变量名是一样的
查看全部 -
不写明访问修饰符的默认为private
查看全部 -
对象和类
类 包含 对象;
对象 包括 静态特征(如字段、属性) 和 动态行为(方法);
查看全部 -
封装 是隐藏信息 流出对外访问的接口
查看全部 -
结构中的元素不能有初始值查看全部
-
。。
查看全部 -
在main方法中访问静态方法不用实例化对象,直接调用方法名即可
引用类型参数,形参改变,实参也改变
值类型参数传参时,形参改变,实参的值不会改变
查看全部 -
在main方法中访问静态方法不用实例化对象,直接调用方法名即可
引用类型参数,形参改变,实参也改变
值类型参数传参时,形参改变,实参的值不会改变
查看全部 -
1.构造方法用于给属性赋值,也可用于属性是只读的情况,同时减少main方法赋值语句;
2.构造方法可以进行重载,与方法重载类似。查看全部
举报