• 类和对象


    所谓类::类是模子,确定对象将会拥有的特征(属性)和行为(方法)

    类是抽象的概念,仅仅是模板,比如说:“人”类

    对象是一个你能够看得到、摸得着的具体实体

    类不占内存  对象才占内存

    类是对象的类型。   

    对象叫做类的实例

    成员:字段,属性,方法

    实例化类

    通过类产生实例的过程,叫做类的实例化

    类 实例名=new 类()

    只要是没有加static的方法或属性,都必须先实例化,再通过实例名.方法名或实例名.属性名来访问

    加static的方法或属性,直接类名.方法名或类名.属性名来访问

    类是不占内存的,但是对象是占内存的

    访问修饰符:

    public  :可以在任何地方被访问

    Internal:只能在本项目中被访问

    Private:只能在本类中被访问

    Preotected:只能在本类和子类中被访问

    在类级别上,默认Internal

    在一个类中定义变量和方法时,如果不写访问修饰符,那么默认是private。

    属性与字段

    定义一个public,这个变量含有get  set方法的 变量,用来保护一个私有变量的叫做属性

    读写属性:具有get  set方法的

    只读属性:只有get方法的,这个属性只能读取 不能赋值              

    只写属性:只有set方法的,这个属性只能写 不能读(用的很少)

    属性是不存值的,只是一个中间商。

    字段前什么也不写,默认就是private

    当我们实例化一个类时,系统会自动对这个类的属性值进行初始化,

    数字类型初始化为0/0.0

    string类型初始化为null  空

    Char类型初始化为

    属性是为了保护与之相对应的字段的.保证对字段的读取和赋值符合要求.

    构造函数

    使用构造函数的好处:

    构造函数最主要的最用:对象初始化

    1)对多个函数进行赋值时,不需要重复的写实例名

    2)可以保护用户在new一个对象时必须对某一个属性进行赋值

    3)在创建对象时,对只读属性进行初始化

    要实例化一个类,必须调用它的构造方法

    当我们定义一个类时,如果我们没有写构造方法,系统会自动给我们加上一个默认的没有参数的构造方法,在这个构造方法中什么也不做,我们也看不到

    我们可以定义一个构造方法,构造方法是一个特殊的方法,他的名字和类的名字相同,没有返回值,void可以省略不写,我们一旦写一个构造方法后,系统原来为我们添加的构造方法就不会添加了

    构造方法的重载

     1 namespace _05构造方法重载
     2 {
     3     class Student
     4     {
     5         private string name;
     6 
     7         public string Name
     8         {
     9             get { return name; }
    10             set { name = value; }
    11         }
    12         private int age;
    13 
    14         public int Age
    15         {
    16             get { return age; }
    17             set 
    18             {
    19                 age = value;
    20             }
    21         }
    22         private char sex;
    23 
    24         public char Sex
    25         {
    26             get { return sex; }
    27             set 
    28             {
    29                 if (age == '' && age == '')
    30                 {
    31                     sex = value;
    32                 }
    33                 else
    34                 {
    35                     age = '';
    36                 }
    37             }
    38         }
    39         private int chinese;
    40 
    41         public int Chinese
    42         {
    43             get { return chinese; }
    44             set { chinese = value; }
    45         }
    46         private int math;
    47 
    48         public int Math
    49         {
    50             get { return math; }
    51             set { math = value; }
    52         }
    53         private int english;
    54 
    55         public int English
    56         {
    57             get { return english; }
    58             set { english = value; }
    59         }
    60         public void SayHello()
    61         {
    62             Console.WriteLine("我叫{0},今年{1}岁,性别{2},语文{3},数学{4},英语{5}",name,age,sex,chinese,math,english);
    63         }
    64         public Student(string name, int age, char sex, int chinese, int math, int english)
    65         {
    66             this.name = name;
    67             this.age = age;
    68             this.sex = sex;
    69             this.chinese = chinese;
    70             this.math = math;
    71             this.english = english;
    72         }
    73         public Student(string name,char sex)
    74         {
    75             this.name = name;
    76             this.age = 18;
    77             this.sex = sex;
    78         }
    构造方法的重载

    抛异常:

    要想抛一个异常,可以这样写

    Throw new Exception(“错误信息”);

  • 相关阅读:
    Script:Generate A DDL Script For A Table
    如何在windows vista/2008/7中 安装Oracle OMS 即Grid Control
    Sqlserver2005迁移至Oracle系列之五:角色、用户、及权限
    Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:SQL模式
    Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:如何使用系统变量?
    Mysql:临时表、表变量
    Sqlserver2005迁移至Oracle系列之四:在Oracle中创建位或运算函数bitor
    flex 图片旋转
    基于模板和XML在BS结构应用中生成word文件
    操作图片文件写入word
  • 原文地址:https://www.cnblogs.com/kongbei2013/p/3264191.html
Copyright © 2020-2023  润新知