构造函数

1.构造函数用来创建对象,并且可以在构造函数中对对象进行初始化.

(给对象的每个属性依次的赋值)

2.构造函数是用来创建对象的特殊方法:

1.方法名和类名一样.

2.没有返回值,连void都不用..

**创建对象的时候会执行构造函数.(静态类呢?静态类不创建对象)

3.new 关键字

Person zs = new Person();

new帮助我们做了3件事儿:

1.在内存中开辟了一块空间

2.在开辟的空间中创建对象

3.调用对象的构造函数进行初始化

**所以构造函数必须是Public!

**构造函数可以有参数,new对象的时候传递函数参数即可.

4.构造函数可以重载,也就是有多个参数不同的构造函数.

**如果不指定构造函数,则类有一个默认的无参构造函数;

**如果指定了构造函数,则不再有默认的无参构造函数;

**如果类中已经有指定参数的构造函数,如果需要无参构造函数,则需要自己来写.

**构造函数的最大优点是,可以方便快捷的对对象初始化!!!

类代码:

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;
} public Student(string name)
{
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 < || value > )
value = ; _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)/);
} }
}

main代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _04面向对象练习
{
class Program
{
static void Main(string[] args)
{ Student a = new Student("zq", , '中', , , );
//a.Name = "zq";
//a.Age = 31;
//a.Gender = '男';
//a.Chinese = 90;
//a.English = 89;
//a.Math = 99; a.SayHello();
a.ShowScore(); Student b = new Student("junfeng",,'女',,,);
//b.Name = "junfeng";
//b.Age = 34;
//b.Gender = '女';
//b.Chinese = 61;
//b.Math = 90;
//b.English = 100; b.SayHello();
b.ShowScore(); Console.ReadKey();
}
}
}

C# 面向对象4 构造函数的更多相关文章

  1. php面向对象之构造函数作用与方法

    什么是构造函数呢?构造函数又有什么作用呢? 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个 ...

  2. 从认识面向对象到构造函数的标准写法(构造函数的继承、多态、ECMA6中新代替语法class) - 下

    笔记一个包含:认识面向对象.构造函数的封装.继承.多态.ECMA6中新代替语法class 下:包括构造函数的继承.多态.ECMA6中新代替语法class 构造函数的继承 从父一级延续下来的属性和功能( ...

  3. PHP面向对象 实例化 构造函数 封装 继承 静态

    PHP面向对象 实例化 构造函数 封装 继承 静态 面向对象: 一:定义类 class Dog { var $name; var $age; var $pinzhong; function Jiao( ...

  4. php面向对象之构造函数和析构函数

    php面向对象之构造函数和析构函数 简介 php面向对象支持两种形式的构造函数和析构函数,一种是和类同名的构造函数(php5.5之前),一类是魔术方法(php5.5之后).与类名相同的构造函数优先级比 ...

  5. python之面向对象与构造函数

    一.面向对象介绍 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式, 当然也有些语言可以同时支持多种编程范式. 两种最重要的编程范式分别是面向过程编程 ...

  6. js面向对象(构造函数与继承)

    深入解读JavaScript面向对象编程实践 Mar 9, 2016 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化.多态.和封装几种技术. 对JavaScript而言,其 ...

  7. js面向对象之构造函数

    最简单的面向对象程序<script type="text/javascript"> var obj = new Object(); obj.qq = '10791611 ...

  8. js基础——面向对象(构造函数)

    1.面向对象:类的标志,通过类可创建多个具有相同属性和方法的对象 2.创建对象 1)工厂模式方式:避免重复实例化但未能解决识别问题  function boss(name, age) {       ...

  9. .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]

    构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用: ...

随机推荐

  1. 【黑马JavaWeb】.1.2反射机制

    文章目录 反射:框架设计的灵魂 获取Class类对象的方式 学习视频:https://www.bilibili.com/video/av47886776?p=10 本来一万行的代码,使用框架以后简化到 ...

  2. 后盾网lavarel视频项目---lavarel中的tinker是什么

    后盾网lavarel视频项目---lavarel中的tinker是什么 一.总结 一句话总结: 是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据 laravel中 ...

  3. Java-JVM 运行时内存结构(Run-Time Data Areas)

    Java 虚拟机定义了在程序执行期间使用的各种运行时数据区域. 其中一些数据区域所有线程共享,在 Java 虚拟机(JVM)启动时创建,仅在 Java 虚拟机退出时销毁. 还有一些数据区域是每个线程的 ...

  4. electron关于页面跳转 的问题

    刚开始看到页面跳转,大家一般会想到用 window.location.href = './index.html'; 这样的代码.结果是可以跳转,但 DOM事件 基本都会失效.到最后还是使用的 elec ...

  5. Dao操作的抽取

    package com.loaderman.demo.c_jdbc; public class Admin { private int id; private String userName; pri ...

  6. Dom4j工具j解析XML原理和示例代码

    import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; i ...

  7. mysql解决删除数据后,主键不连续问题

    题记:强迫症需求,一个小技巧. 亲测有效 SET @i=; UPDATE table_name SET `); ALTER TABLE table_name AUTO_INCREMENT=; 注意:主 ...

  8. linux配置信息收集

    CPU型号:# cat /proc/cpuinfo |grep "model name"# cat /proc/cpuinfo | grep name | cut -f2 -d: ...

  9. 谷歌云服务器XShell登录

    一,谷歌云服务器,默认用浏览器进行SSH链接,而且也不告知密码.以Centos为例,先使用浏览器连接 1,给root修改密码 sudo passwd root 2,编辑ssh配置文件 sudo nan ...

  10. 通过TCODE查找SPRO路径

    1.SE11:CUS_ACTOBJ,根据OBJECTNAME(对象名称),即视图名称,获取Customizing activity(ACT_ID) 2.根据ACT_ID在表CUS_IMGACT获取说明 ...