39.C#--面对对象构造函数及构造函数继承使用

//一.新建Person类
namespace _39.面对对象构造函数及构造函数继承使用
{
public class Person
{
//字段、属性、方法、构造函数
//字段:存储数据
//属性:保护字段,对字段的取值和设值进行限定
//方法:描述对象的行为
//构造函数:初始化对象(给对象的每个属性依次的赋值)
//类中的成员,如果不加访问修饰符,默认都是private
private string _name; //字段
public string Name //属性
{
get { return _name; }
set { _name = value; }
}

    public int _age;  //字段
    public int Age     //属性
    {
        get { return _age; }
        set {if(value<=0 || value >= 100)  //对年龄赋值进行设定,
            {                              //小于0或大于100都默认取0

value = 0;
}
_age = value; }
}

    public char _gender;       //字段
    public char Gender             //属性
    {
        get { return _gender; }
        set { if(value!=‘男‘ || value != ‘女‘)  //对赋值进行限定
            {                                 // 如果输入不是男或女的,默认都取男
                value = ‘男‘;
            }
            _gender = value; }
    }

    public int _id;      //字段
    public int Id       //属性
    {
        get { return _id; }
        set { _id = value; }
    }
    //构造函数:1、没有返回值 连void也没有
    //2、构造函数的名称跟类名一样
    public Person(string name,int age,char gender,int id)  //构造函数,main函数传参过来
    {   //this:当前类的对象
        //this:调用当前类的构造函数
        this.Name = name;            //this.Name指这个类中的属性值,将main函数传过来的值赋给属性值
        this.Age = age;             //同上
        this.Gender = gender;
        this.Id = id;
    }
    public Person(string name,char gender) : this(name,0,gender,0) { }  //继承上面那个构造函数
    public void SayHellOne()     //方法一
    {
        Console.Write("我是{0},我今年{1}岁了,我是{2}生,我的学号是{3}", this.Name, this.Age, this.Gender, this.Id);
    }
    public static void SayHelloTwo()   //方法二, 静态函数只能够访问静态成员
    {
        Console.WriteLine("我是静态的方法!");
    }
            public Person()
    {

    }
}

}

二:main函数调用
namespace _39.面对对象构造函数及构造函数继承使用
{
class Program
{
static void Main(string[] args)
{
//39.面对对象构造函数及构造函数继承使用
Person lsPerson = new Person("张三",18,‘男‘,100); //新建对象,调用构造一方法
lsPerson.SayHellOne();
Console.WriteLine(); //换行
Person xlPerson = new Person("小兰", ‘女‘); //新建对象,调用构造二方法
xlPerson.SayHellOne();
Console.WriteLine(); //换行
Person.SayHelloTwo(); //调用静态方法
Console.ReadKey();
}
}
}

原文地址:https://blog.51cto.com/12679593/2385986

时间: 2024-10-19 09:30:50

39.C#--面对对象构造函数及构造函数继承使用的相关文章

面对对象编程--类、继承

类(Class): 用来描述具有相同的属性和方法的对象的集合. 对象,实例:通过类实例化出来的东西 属性:类里面的变量 方法:类里面的方法 实例方法:正常定义的带self函数都是实例方法 类方法: 1.不实例化,直接用类名调用 2.它可以使用类变量,cls.xxx 3.实例也可以直接通过self.xx来使用类方法 4.类方法里面它是不能用这些实例方法和实例变量 静态方法: 就是一个普通的函数,只是定义在类里面而已. #用不了实例方法.用不了实例变量.也用不了类方法.类变量 #也不需要实例化,直接

35.python全栈之路:面对对象进阶

面对对象进阶 1.多继承中的self class A: def bar(self): print('BAR') self.f1() ''' self本身代表的D类的对象d1 d1如果要在他的父类中去寻找f1 首先应该去C类 ''' class B(A): def f1(self): print('B') class C: def f1(self): print('C') class D(C, B): pass d1 = D() d1.bar() 流程分析: d1 = D(),最终找到了objec

面对对象进阶

面对对象进阶 类的继承 python当中,父类和子类(派生类),父类和子类只有在继承的时候才会产生 继承是为了拿到父类的所有东西 class Parent_Foo: #父类 def __init__(self, first_name, money, car, house): self.first_name = first_name self.money = money * 0.5 print('继承财产扣掉一半') self.car = car self.house = house def fi

原型,原型对象,原型链,构造函数,继承(二)

1.prototype(原型对象)有一个属性叫做constructor,constructor默认指向prototype(原型对象)所在的构造函数 2.constructor属性是定义在prototype上的,那就意味着可以被实例对象所继承 3.可以使用hasOwnProperty 方法来验证一个属性是自己的还是继承过来的 4.constructor的作用: 作用一:分辨原型对象到底属于哪个构造函数 instanceof() 作用二:可以从一个实例对象创建另一个实例对象 var Fun = fu

原型,原型对象,原型链,构造函数,继承(一)

前言:javascript中 万物皆对象 , 但是对象是有区别的 分为普通对象(object)和函数对象(function): ①由以下三种形式创建的对象为函数对象: function fun1(){} var fun2 = function(){} var fun3 = new Function(); console.log(typeof fun1);//function console.log(typeof fun2);//function console.log(typeof fun3);

算法-javascript自实现继承extend(单次继承原型对象和单次继承构造函数)

# 自实现继承(单次继承构造函数)  //父类的构造函数   function Father(name,age){    this.name=name    this.age=age   }      //父类的原型对象   Father.prototype={    constructor:Father,    say:function(){     console.log('i am '+this.name+' ,'+this.age+' years old')    }   }      

C++构造函数 &amp; 拷贝构造函数 &amp; 派生类的构造函数 &amp; 虚继承的构造函数

构造函数 ,是一种特殊的方法 .主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 .特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载.(摘自百度百科构造函数). 一.最基本的构造函数 1 class Base 2 { 3 public: 4 Base(int var) : m_Var(var) 5 { 6 } 7 private: 8 int m_Var; 9 }; 以上构造函数的执行过程:

&gt;&gt;&gt;---PHP中的OOP--&gt;面对过程与面对对象基础概念与内容--(封装、继承、多态)

  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的重要成员OOP 1  面向过程&面向对象 1.专注于解决一个问题的过程.面向过程的最大特点,是由一个一个的函数去解决处理这个问题的一系列过程. 2.专注于由哪个对象来处理一个问题.面向对象的最大特点,是一个个具有属性和功能的类,从类中拿到对象,进而处理问题. 2  面向对象 1.什么是类?              具有相同属性(特征)和方法(行为)的一系列个体的集合,类事一个抽象的概念. 2.什么是对象?          

javascript面对对象编程 之继承

上一篇博客中为大家介绍了javascript面向对象编程原则的封装,今天为大家介绍继承,在javascript中没有类的概念,所有不能像c#,java语言那样,直接的用类去继承类.比如现在有比如,现在有一个"动物"对象的构造函数. function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数. function Cat(name,color){ this.name = name; this.co