using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
* C#定义类
* 类是抽象的概念,比如猫、狗可以归为动物一类
* 类和对象的区别:
* 对象是具体的物体,比如猫和狗属于动物类,但他们本身属于一个独立的个体,一个实际的对象
* 类定义语法:
* 修饰符(默认是内部的)class类名
* { }
* 四种访问修饰符:指定声明的类的可访问性;
* public:公共访问时允许的最高访问级别,对访问没有限制;
* private:私有访问时允许的最低访问级别,私有类只有在声明它们的类和结构体中才是可访问的;
* internal:类型和类型成员的访问修饰符,只有在同一程序集的文件中,内部类型或成员才是可访问的;
* protected:受保护类在其声明的类中可由其所声明类的派生类实例访问;
* 其它类修饰符:
* abstract:用于声明虚类,指示某个类只能是其它类的基类;
* partial:部分在整个同一程序集中定义分部类、结构和方法;
* sealed:指定类不能被继承;
* static:声明静态类,类型本身只含有静态成员,不能被实例化;
* 实例化类:
* 类 变量名 = new 类()
* 构造方法:
* 修饰符 + 类型(与类同名)()
* { }
* 静态构造方法(静态的独立于任何具体对象)
* 有.net调用,
*
*/
namespace ConsoleApplication6
{
#region
//internal class Program//修饰符可省略,默认内部程序集调用
//{
// static void Main(string[] args)
// {
// Console.ReadKey();
// }
// public Dog dogNumOne;//定义对象
// public Dog dogNumTwo = new Dog();//定义对象并实例化
// public void Start()
// {
// dogNumOne = new Dog();//实例化对象,开辟内训空间
// dogNumOne.num = 10;//调用实例对象的变量(注意改变实例对象的变量不会影响类本身,也不会影响其它实例对象)
// dogNumOne.Name();//调用实例对象方法
// dogNumTwo.num = 20;//调用实例对象变量
// dogNumTwo.Name();//调用实例对象方法
// }
//}
//class Dog
//{
// public int num;//变量
// public void Name()
// {
// }
// #region//实例构造方法
// //构造方法(如果不写,类默认有一个构造方法)
// public Dog()
// {
// }
// //重载构造方法(与方法的重载一样)
// public Dog(int num)
// {
// }
// #endregion
// #region//私有构造方法(只能在本类使用)
// //private Dog()
// //{
// //}
// #endregion
// #region//静态构造方法
// //静态构造方法(.NET内部调用,作用初始静态变量,只会在第一个对象实例时调用,只调用一次)
// static Dog()
// {
// }
// #endregion
// #region//析构方法,用来销毁对象释放内存
// //析构方法
// ~Dog()
// {
// }
// #endregion
//}
#endregion
class Program//修饰符可省略,默认内部程序集调用
{
static void Main(string[] args)
{
Student stu = new Student("张三",'男');
Student stu1 = new Student("小红",'女',16,90,95,80);
stu1.Say();
stu1.Ave();
Console.ReadKey();
}
}
class Student
{
private string _name;
private char _sex;
private int _age = 18;
private float _chineseScore = 0;
private float _mathScore = 0;
private float _englishScore = 0;
//构造函数可以重载,可以对属性初始化
public Student(string name, char sex, int age, float chin, float math, float english)
{
_name = name;
_sex = sex;
_chineseScore = chin;
_mathScore = math;
_englishScore = english;
}
public Student(string name, char sex)
{
_name = name;
_sex = sex;
}
//析构函数
~Student()
{
Console.WriteLine("再让我。。。");
}
public void Say()
{
Console.WriteLine("我叫{0},今年{1}岁啦,是{2}同学",_name,_age,_sex);
}
public void Ave()
{
float tatol = _mathScore + _chineseScore + _englishScore;
float ave = tatol / 3;
Console.WriteLine("我叫{0},这次考试总成绩{1}分,这次考试的平均{2}分",_name,tatol,ave);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
* C#定义类
* 类是抽象的概念,比如猫、狗可以归为动物一类
* 类和对象的区别:
* 对象是具体的物体,比如猫和狗属于动物类,但他们本身属于一个独立的个体,一个实际的对象
* 类定义语法:
* 修饰符(默认是内部的)class类名
* { }
* 四种访问修饰符:指定声明的类的可访问性;
* public:公共访问时允许的最高访问级别,对访问没有限制;
* private:私有访问时允许的最低访问级别,私有类只有在声明它们的类和结构体中才是可访问的;
* internal:类型和类型成员的访问修饰符,只有在同一程序集的文件中,内部类型或成员才是可访问的;
* protected:受保护类在其声明的类中可由其所声明类的派生类实例访问;
* 其它类修饰符:
* abstract:用于声明虚类,指示某个类只能是其它类的基类;
* partial:部分在整个同一程序集中定义分部类、结构和方法;
* sealed:指定类不能被继承;
* static:声明静态类,类型本身只含有静态成员,不能被实例化;
* 实例化类:
* 类 变量名 = new 类()
* 构造方法:
* 修饰符 + 类型(与类同名)()
* { }
* 静态构造方法(静态的独立于任何具体对象)
* 有.net调用,
*
*/
namespace ConsoleApplication6
{
#region
//internal class Program//修饰符可省略,默认内部程序集调用
//{
// static void Main(string[] args)
// {
// Console.ReadKey();
// }
// public Dog dogNumOne;//定义对象
// public Dog dogNumTwo = new Dog();//定义对象并实例化
// public void Start()
// {
// dogNumOne = new Dog();//实例化对象,开辟内训空间
// dogNumOne.num = 10;//调用实例对象的变量(注意改变实例对象的变量不会影响类本身,也不会影响其它实例对象)
// dogNumOne.Name();//调用实例对象方法
// dogNumTwo.num = 20;//调用实例对象变量
// dogNumTwo.Name();//调用实例对象方法
// }
//}
//class Dog
//{
// public int num;//变量
// public void Name()
// {
// }
// #region//实例构造方法
// //构造方法(如果不写,类默认有一个构造方法)
// public Dog()
// {
// }
// //重载构造方法(与方法的重载一样)
// public Dog(int num)
// {
// }
// #endregion
// #region//私有构造方法(只能在本类使用)
// //private Dog()
// //{
// //}
// #endregion
// #region//静态构造方法
// //静态构造方法(.NET内部调用,作用初始静态变量,只会在第一个对象实例时调用,只调用一次)
// static Dog()
// {
// }
// #endregion
// #region//析构方法,用来销毁对象释放内存
// //析构方法
// ~Dog()
// {
// }
// #endregion
//}
#endregion
class Program//修饰符可省略,默认内部程序集调用
{
static void Main(string[] args)
{
Student stu = new Student("张三",'男');
Student stu1 = new Student("小红",'女',16,90,95,80);
stu1.Say();
stu1.Ave();
Console.ReadKey();
}
}
class Student
{
private string _name;
private char _sex;
private int _age = 18;
private float _chineseScore = 0;
private float _mathScore = 0;
private float _englishScore = 0;
//构造函数可以重载,可以对属性初始化
public Student(string name, char sex, int age, float chin, float math, float english)
{
_name = name;
_sex = sex;
_chineseScore = chin;
_mathScore = math;
_englishScore = english;
}
public Student(string name, char sex)
{
_name = name;
_sex = sex;
}
//析构函数
~Student()
{
Console.WriteLine("再让我。。。");
}
public void Say()
{
Console.WriteLine("我叫{0},今年{1}岁啦,是{2}同学",_name,_age,_sex);
}
public void Ave()
{
float tatol = _mathScore + _chineseScore + _englishScore;
float ave = tatol / 3;
Console.WriteLine("我叫{0},这次考试总成绩{1}分,这次考试的平均{2}分",_name,tatol,ave);
}
}
}