初识c# ——类、对象的属性方法

using System;

namespace ClassTest
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			/*复习总结*/
//      	 1、数据类型转换
                int count=3;
                float count1=count;//int 转flaot 隐式转换 自动转 低精度到高精度
                int count2=(int)count1;//float 转int 显式转换 前加小括号备注目标类型
			string count3=count2.ToString();//数字转换字符串 不能(string)count2 需调用函数ToString()
               int count4=int.Parse(count3);//同理 字符串转换数字 调用函数int。Parse()
               float count5=float.Parse(count3);//string 转float
               double count6=double.Parse(count3);//string转double
               String count7;//c#中可也以用String 但标准是string  在.net中是如此
//           2、输入输出
               string str=Console.ReadLine();//字符串
               int keyCode=Console.Read();//键码值 int
               Console.Write(keyCode);
               Console.WriteLine(str);
               int i=2,j=3;
               Console.WriteLine(i+"*"+j+"="+i*j);//Format可以清晰实现
               Console.WriteLine(string.Format("{0}*{1}={2}",i,j,i*j));
//           3、循环判断
               int a=3;
               if(a<5){
                a=10;
               }
               else if(a<15){
                a=20;
               }
               a=a==10?20:30;//三目运算法
               for(int x=0;x<10;x++){
                  if(x==3)continue;// 3不输出 continue结束本次循环 继续下次循环
                  if(x==8)break;//结束当前循环
				  Console.WriteLine(x);
               }
//            4、变量 参数 返回值
                //局部变量:在方法中的定义的变量 当前方法可用
                int number1=3;
                //Main主方法中是一个静态方法 只能用静态变量 而局部变量不需要加static/public/private(否则报错)
			number2 = 10;
                float value=Calculate(number1,number2);//有返回值的方法调用时 需要用一个与返回值类型对应的变量接收
                Console.WriteLine(value);
//            5、其他类中的属性方法调用
			    //另一个类中的静态属性方法 可以找直接用类名调用
			People.canFly=false;
			People.Sleep ();
			//另一个类中非静态属性方法 需要用类的对象调用 用的较多
			People zhangsan= new People();//新建对象 People
			zhangsan.height = 160;//对象去调用 用的比较多
			zhangsan.Eat ();
			

		}
		//全局变量:函数外(类内部)定义的变量 可在本类中所有方法中用
		private static int number2 = 10;//静态方法中只能用静态变量 而类之间可以强调public private ; 默认私有 可以不加
		private static float Calculate(int count1,int count2){
			//count1 count2为方法的参数 多个参数逗号隔开
			return count1+count2;//返回值类型在方法名前定义 此处为float  隐式转换 自动转
		}

		//不同的方法相互独立 不能嵌套 (JS可以在函数中定义函数)
	}


	//定义一个新类 不同的类相互独立 不能嵌套
	class People{
		//属性 或 方法 如需在其他类中调用 需用public定义
		public float height;//属性
		public static bool canFly;
		public void Eat(){//方法
			Console.WriteLine("好好吃饭!!!");
		}
		public static void Sleep(){
			Console.WriteLine("好好睡觉!!!");
		} 
	}

}


以下为更为细节的知识点:子父类混合调用等


using System;

namespace Class
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			#region 1  概念
			//代码区域 提示说明的作用 类似多行注释 不影响代码运行
			/*编程语言:面向对象/面向过程
              面向过程:C语言
              面向对象:Java vb C++ OC JavaScript C#
              面向对象语言有类和对象的概念
              类:一些拥有相同特性和行为的抽象事物的总称(由属性和方法组成) 如人类 动物类 电脑类
              在类中 相同的特性叫属性 如身高 体重 年龄等;
                    相同的行为叫方法(或函数) 如吃喝 工作学习 
              对象:类的实例化,具体的一个事物 如 张三 小明
			*/
			#endregion //每一个region 都对应一个endregion

			#region 2 类的定义和对象的创建
			/*
              主类之外用class关键字定义新的类
              
			*/
			//新建一个People类的对象 取名张三 People在此处为对象类型
			People zhangsan=new People();
			People lisi=new People();
			People xiaoming=new People();
			#endregion
			 
			#region 3 调用/使用 类的属性和方法
			//普通的属性和方法通过对象调用
			zhangsan.height=180f;
			lisi.height=170f;
			xiaoming.height=160f;

			zhangsan.weight=100f;
			zhangsan.Drink(2.3f);
			lisi.weight=120;
			lisi.Drink(5f);

			//用static定义的静态属性 必须用类名调用
			People.canFly=false;
			People.Sleep(8);
			//在此处无法调用People类中私有属性和私有方法
			#endregion

			#region 4 类的继承
			/*
              People 人类(父类)
			  Man 男人类(子类)
			  继承:一个类中某一部分对象组成另一个类
			  子类拥有父类所用的属性方法 而且拥有自己的属性方法
			  Man类继承自People类 Man类的属性方法要多于People类
              People类 属性身高体重 方法吃喝拉撒睡
              diaosi类 属性:懒 宅 丑 穷 胖等
                    方法:吃泡面喝汤 喝酸奶舔盖 爱打游戏等

               继承的作用:子类可直接使用父类所有的属性和方法 无需重新定义
			*/
			Man xiaoqiang=new Man();
			xiaoqiang.height=180f;
			xiaoqiang.weight=100f;

			xiaoqiang.Drink(3f);/*子类中定义一个和父类相同的方法Drink() 叫重写
			                  子类对象在调用方法时 调用的是子类本身的方法*/

			Man.sex="男";
			Man.Sleep(7);
			//下边是子类独有的属性方法
			xiaoqiang.huzi=10f;
			xiaoqiang.guahuzi(xiaoqiang.huzi);

			//类不能多继承:一个类不能继承自多个类 但一个父类可以有多个子类
			#endregion


			#region 5 子父类混合调用
			//(1) 子类类型创建父类对象 不可用
			//Man xiaohong=new People();//隐式转换 直接报错;
			//Man xiaohong=(Man)new People();//显式转换 new前加(Man) 程序崩溃
			//(2)父类类型创建子类对象
			People zhaoliu=new Man();//程序正常运行

			zhaoliu.Drink(2f);//父类类型子类对象调用的是父类的属性方法
			//zhaoliu.guahuzi();//不能调用子类的属性方法
			#endregion

		}
	}
	//定义一个新的类 class是一个关键字 用于定义类
	class People{
		//属性必须是public定义的 可在本类和其他类调用
		//用private定义的只能是全局变量,只能在本类中调用 不能在其他类调用
		//局部变量只能在方法中调用
		public float height;
		public float weight;//不同人体重不同 用对象调用 故不定义为static
		public static bool canFly;//共有的 都一样 static用类调用
		private bool sex;
		public int age;
		//变量定义之后不赋值 数字类型默认0 bool类型默认false string默认“ ”(即空Null)
		//方法:共有方法和私有方法
		private void Eat(){
			Console.WriteLine ("中午吃的饺子");
		}
		public void Drink(float water){
			float newWeight = weight + water;
			Console.WriteLine ("刚喝了一瓶水,体重从"+weight+"斤变成"+newWeight+"斤");
		}
		public static void Sleep(int time){//静态方法用类调用
			Console.WriteLine("人类一天需要休息"+time +"个小时");
		}
	}

	//定义一个新的类 继承自People类
	//格式  子类:父类 (man是子类 people是父类)
	class Man:People{
		//定义子类独有的属性和方法 其方法父类不能调用
		public static string sex;//父类中性别是私有 不能调用 
		public float huzi;
		public void guahuzi(float huzi){
			Console.WriteLine("胡子长度"+huzi);
		}
		public void Drink(float water){
			float newWeight = weight + water;
			Console.WriteLine ("男人刚喝了一瓶水,体重从"+weight+"斤变成"+newWeight+"斤");
		}
	}
}
	



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值