C# 面向对象5 this关键字和析构函数

this关键字

1.代表当前类的对象

2.在类当中显示的调用本类的构造函数(避免代码的冗余)

语法: ":this"

以下一个参数的构造函数调用了参数最全的构造函数!并赋值了那些不需要的属性!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _04面向对象练习
{
    public class Student
    {
        //字段,属性,方法,构造函数

        //构造函数
        public Student(string name,int age,char gender,int chinese,int math,int english)
        {
            //
            this.Name = name;
            this.Age = age;
            this.Gender = gender;
            this.Chinese = chinese;
            this.Math = math;
            this.English = english;
        }

        //******
        //this 关键字的用法
        public Student(string name):this(name,0,‘a‘,0,0,0)
        {
            //this.Name = name;
        }

        public Student()
        {
            Console.WriteLine("Hello!");
        }

        private string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private int _age;
        public int Age
        {
            get { return _age; }
            set {
                if (value < 0 || value > 100)
                    value = 0;

                _age = value; }
        }

        private char _gender;
        public char Gender
        {
            get {
                if(_gender !=‘男‘&&_gender!=‘女‘)
                   return  _gender=‘男‘;

                return _gender; }
            set { _gender = value; }
        }

        private int _chinese;
        public int Chinese
        {
            get { return _chinese; }
            set { _chinese = value; }
        }

        private int _math;
        public int Math
        {
            get { return _math; }
            set { _math = value; }
        }

        private int _english;
        public int English
        {
            get { return _english; }
            set { _english = value; }
        }

        public void SayHello()
        {
            Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生",this.Name,this.Age,this.Gender);
        }

        public void ShowScore()
        {
            Console.WriteLine("我叫{0},我的总成绩是{1},平均成绩是{2}", this.Name, this.Chinese + this.Math + this.English, (this.Chinese + this.Math + this.English)/3);
        }

    }
}

析构函数

当程序结束的时候,才会执行析构函数.

作用,不必等GC来回收垃圾,可以调用析构函数马上回收垃圾!!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _04面向对象练习
{
    public class Student
    {
        //字段,属性,方法,构造函数

        //析构函数
        //当程序结束的时候,析构函数才会执行
        //帮助我们释放资源
        //GC:垃圾回收器可以自动回收垃圾
        //使用析构函数可以马上回收垃圾,不必等GC来回收!
        ~Student()
        {
            Console.WriteLine("析构函数");
        }

        //构造函数
        public Student(string name,int age,char gender,int chinese,int math,int english)
        {
            //
            this.Name = name;
            this.Age = age;
            this.Gender = gender;
            this.Chinese = chinese;
            this.Math = math;
            this.English = english;
        }

        //******
        //this 关键字的用法
        public Student(string name):this(name,0,‘a‘,0,0,0)
        {
            //this.Name = name;
        }

        public Student()
        {
            Console.WriteLine("Hello!");
        }

        private string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private int _age;
        public int Age
        {
            get { return _age; }
            set {
                if (value < 0 || value > 100)
                    value = 0;

                _age = value; }
        }

        private char _gender;
        public char Gender
        {
            get {
                if(_gender !=‘男‘&&_gender!=‘女‘)
                   return  _gender=‘男‘;

                return _gender; }
            set { _gender = value; }
        }

        private int _chinese;
        public int Chinese
        {
            get { return _chinese; }
            set { _chinese = value; }
        }

        private int _math;
        public int Math
        {
            get { return _math; }
            set { _math = value; }
        }

        private int _english;
        public int English
        {
            get { return _english; }
            set { _english = value; }
        }

        public void SayHello()
        {
            Console.WriteLine("我叫{0},我今年{1}岁了,我是{2}生",this.Name,this.Age,this.Gender);
        }

        public void ShowScore()
        {
            Console.WriteLine("我叫{0},我的总成绩是{1},平均成绩是{2}", this.Name, this.Chinese + this.Math + this.English, (this.Chinese + this.Math + this.English)/3);
        }

    }
}

***Xmind脑图软件

时间: 2024-10-11 18:25:48

C# 面向对象5 this关键字和析构函数的相关文章

PHP 面向对象中常见关键字使用(final、static、const和instanceof)

PHP 面向对象中常见关键字的使用: 00x1.Final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用final标识的成员方法,在子类中不能覆盖. 总结:final表示为最终的意思,所以使用final关键字的类或者类中的成员方法是不能被更改的. 00x2.Static :static关键字将类中的成员属性或者成员方法标识为静态的,static标识的成员属性属于整个类,static成员总是唯一存在的,

java基础面向对象之this关键字

java基础面向对象之this关键字 2017-02-14 this的核心概念: this关键字在java中表示当前对象. this关键字的主要用法: 在java中利用this关键字可以实现类属性的调用,类方法的调用,当前对象. 一.调用属性 1 class Book{ //Book类 2 private String title ; //title属性 3 private int price ; //price属性 4 5 public Book(String t , int p){ 6 ti

PHP面向对象常见的关键字和魔术方法

在PHP5的面向对象程序设计中提供了一些常见的关键字,用来修饰类.成员属性或成员方法,使他们具有特定的功能,例如final.static.const等关键字.还有一些比较实用的魔术方法,用来提高类或对象的应用能力,例如__call().__toString().__autoload等. ①final关键字的应用 final关键字的作用如下:a.实用final标识的类,不能被继承.b.在类中使用final标识的成员方法,在子类中不能被覆盖. 在下面的例子中声明一个MyClass类,并使用final

面向对象(final关键字)

/** * Created by rabbit on 2014-07-21. * final 最终 作为一个修饰符 * 1.可以修饰 类,函数,变量 * 2.被final 修饰的类,函数,变量不能被继承,不能被覆写 * * */ class demo {     final int x = 5;     final void show1()     {         System.out.println("show1 running");     }     void show2()

java学习笔记之面向对象static,final关键字

java学习笔记之面向对象static,final关键字 一.static关键字 1.概述: static静态的,被static修饰的成员属于类,不属于单个对象,被所有对象所共享,存在静态区中,静态的成员优先于对象加载到内存中. 2.statc修饰成员的使用方式:(被static修饰的成员变量有默认值) /* 1.可以通过对象直接使用,不推荐使用 2.通过类名调用静态成员 类名.静态成员变量 类名.静态成员方法 */ 3.static的特点 /* 1.在同一个类中,静态成员只能访问静态成员,非静

2016/3/21 面向对象: ①定义类 ②实例化对象 ③$this关键字 ④构造函数 ⑤析构函数 ⑥封装 ⑦继承

一:定义类   二:实例化对象 1 //定义类 2 class Ren 3 { 4 var $name; 5 var $sex; 6 var $age; 7 8 function Say() 9 { 10 echo "{$this->name}在说话"; 11 } 12 } 13 //实例化对象 14 $Ren = new Ren(); 15 //调用对象的成员: 16 $Ren->name = "张三"; 17 $Ren->Say(); 显示结果

C# 面向对象的new关键字的使用

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicationTest { class Program { static void Main(string[] args) { Student s = new Student("'zhangsan",19,1); //父类中的person say hello 没有输出,原因是

面向对象(static关键字)

static关键字:用于修饰成员(成员变量和成员函数) 被修饰后的成员具备以下特点: 随着类的加载而加载 优先于对象存在 被所有的对象共享 可以直接被类名调用 使用注意: 静态方法只能访问静态成员 静态方法中不可以写this,super关键字 主函数是静态的

面向对象的static关键字(类中的static关键字)

转自:http://blog.csdn.net/xiayefanxing/article/details/7382192 1.静态数据成员 在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员. 先举一个静态数据成员的例子. 1 //Example 5 2 #include "stdafx.h" 3 #include <iostream> 4 using namespace std; 5 class Myclass 6 { 7 public: 8