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+"斤");
}
}
}