-
枚举类型:右键,添加,代码文件查看全部
-
//@装箱和拆箱 //概念:值类型转换成引用类型的过程称为装箱;引用类型转换成值类型的过程称为拆箱。 /* 装箱例子: int if=123; object obj=i;//装箱 i=456;//改变i的内容 MessageBox.Show("值类型的值为:"+i+"引用类型的值为:"+obj); */ //输出:值类型的值为:456引用类型的值为:123 //解析:当执行i=456;语句,改变i的值时,因为i是值类型,所以只能改变它自己的值,无法修改引用类型object的值。 /* 拆箱例子: int i=123; object obj=i;//隐装箱 try{ int j=(int)obj;//拆箱 MessageBox.Show("取消装箱成功."); } catch(System.InvalidCastException ex){ MessageBox.Show(ex.Message+"错误:不正确的取消装箱."); } */ //输出:取消装箱成功. //解析:先将值类型i进行装箱,然后再将转换后的引用类型obj进行拆装处理。记住int i=123;中的i的数据类型和int j=(int)obj;中obj前面的转换类型(int)一致。如果不一致就会发生异常。所以在拆箱的时候要注意异常的处理。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
//@值类型和引用类型 /* public struct StructWaiter { public int age; public StructWaiter(int age) { this.age = age; } } //值类型演示 Main{ StructWaiter waiter1=new StructWaiter(); StructWaiter waiter2=new StructWaiter(); waiter1.age=25; waiter2=waiter1; waiter2.age=28; Console.WriteLine("waiter1="+waiter1.age+",waiter2="+waiter2.age);//waiter1=25,waiter2=28 } //引用类型演示 Main{ Waiter waiter1=new Waiter(); Waiter waiter2=new Waiter(); waiter1.age=25; waiter2=waiter1; waiter2.age=28; Console.WriteLine("waiter1="+waiter1.age+",waiter2="+waiter2.age);//waiter1=28,waiter2=28 } Ps:因为结构对象和类的对象在内存中的存储方式不同造成的,这就是值类型和引用类型的主要区别。 */ 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
Ps:枚举是值类型,枚举中不能定义字段属性和方法,枚举值是从0递增的整数。(外面引用的时候是根据enum的名称,而不是类名) @Program.cs namespace Test3 { class Program { static void Main(string[] args) { //1 //Class1 c1 = new Class1((Gender1)0); //Class1 c2 = c1; //c2.Sex = Gender1.女; //2 Class1 c1 = new Class1((Gender1)0); Class1 c2 = new Class1(Gender1.女); Console.WriteLine("{0},{1}",c1.Sex,c2.Sex);//1-女,女;2-男,女。 } } } @Class1.cs namespace Test3 { class Class1 { private Gender1 _sex; internal Gender1 Sex { get { return _sex; } set { _sex = value; } } public Class1(Gender1 sex) { _sex = sex; } } } @Gender.cs enum Gender1{ 男,女 } 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
类中的变量默认为私有的。查看全部
-
ref 声明的时候加关键字ref,调用的时候也要加关键字ref, 值类型参数,按照引用类型传参。查看全部
-
多态:父类可以接收子类对象查看全部
-
枚举:限定了范围
枚举:
1、值类型
2、不能定义字段属性和方法
3、枚举值是从0递增的整数
例子:enum Gender
//Child c1 = new Child("梁晓雪", "女", 4);//错误 5 参数 2: 无法从“string”转换为“Gender”
//Child c2 = new Child("刘小牛","猴",5);
//Child c2 = new Child("刘小牛", Gender.男, 5);
Child c2 = new Child("刘小牛", (Gender)0, 5);1、创建枚举类型:项目名称,右键,添加,类或新建项(代码文件)
2、枚举属于值类型,枚举中不能定义字段属性和方法,枚举值是从0开始的整数值
3、枚举类型限定了一组有限的值,可以在某种程度上防止错误数据的输入
查看全部 -
构造方法重载:与方法重载一样,名相同但是参数不能相同。
根据传入的参数类型选择最匹配的构造方法
一旦定义了有参构造后,原始的默认的无参构造就失效了
Child child1=new Child ("小小","男",4);
Child child2 = new Child("大大",5);
//构造方法的重载和普通方法的重载类似,形参列表不能完全相同,类会选择形参最接近的构造方法构造。
//当构造方法被显示写出来之后,默认的无参构造方法就消失了。这一点需要注意。方法的重载:方法名称相同,参数的类型不同或者是参数的个数不同
关键字:this 代表当前对象 this可以用来访问当前对象的属性,字段和方法
构造防范的作用:为属性赋值
如果没有显示定义构造方法,则会有一个默认的无参数的构造方法
如果显示定义了构造方法,则没有默认构造方法
只能用new 方法名()的形式调用构造方法
查看全部 -
有返回值方法的调用:
1.方法返回值的类型不应该写成void,应该写成与返回值相同的类型
2.在执行到最后的时候用return返回计算结果
3.调用时需要一个与返回值相同类型的变量来接受调用语句的结果
查看全部 -
例化对象在Main方法中,类名 对象名=new 类名();<br>
Child xiaoming=new Child();
有了对象后可以访问他的字段属性和方法
访问字段:对象名.字段="值"; xiaoming._name="小明";
调用方法:对象名.方法名(); xiaoming.PlayBall();
输出字段:对象名.字段 xiaoming._name查看全部 -
this关键字可以用来表示:字段、属性、方法
this.sex = sex;(此处用来区别重名的)
this.sex //表示当前对象“字段”,sex //表示形参sex
查看全部 -
this 当前
this.对象 -> 当前对象
查看全部 -
对象是真实存在的,类是对对象共同特征的抽象和概况
查看全部 -
在定义方法时,尽量让每一个方法只完成一个单一的功能。
返回值:用于提供方法的输出结果
方法的返回值类型与return后类型一致
查看全部
举报