C# 面向对象4 构造函数
构造函数
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 构造函数的更多相关文章
- php面向对象之构造函数作用与方法
什么是构造函数呢?构造函数又有什么作用呢? 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个 ...
- 从认识面向对象到构造函数的标准写法(构造函数的继承、多态、ECMA6中新代替语法class) - 下
笔记一个包含:认识面向对象.构造函数的封装.继承.多态.ECMA6中新代替语法class 下:包括构造函数的继承.多态.ECMA6中新代替语法class 构造函数的继承 从父一级延续下来的属性和功能( ...
- PHP面向对象 实例化 构造函数 封装 继承 静态
PHP面向对象 实例化 构造函数 封装 继承 静态 面向对象: 一:定义类 class Dog { var $name; var $age; var $pinzhong; function Jiao( ...
- php面向对象之构造函数和析构函数
php面向对象之构造函数和析构函数 简介 php面向对象支持两种形式的构造函数和析构函数,一种是和类同名的构造函数(php5.5之前),一类是魔术方法(php5.5之后).与类名相同的构造函数优先级比 ...
- python之面向对象与构造函数
一.面向对象介绍 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式, 当然也有些语言可以同时支持多种编程范式. 两种最重要的编程范式分别是面向过程编程 ...
- js面向对象(构造函数与继承)
深入解读JavaScript面向对象编程实践 Mar 9, 2016 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化.多态.和封装几种技术. 对JavaScript而言,其 ...
- js面向对象之构造函数
最简单的面向对象程序<script type="text/javascript"> var obj = new Object(); obj.qq = '10791611 ...
- js基础——面向对象(构造函数)
1.面向对象:类的标志,通过类可创建多个具有相同属性和方法的对象 2.创建对象 1)工厂模式方式:避免重复实例化但未能解决识别问题 function boss(name, age) { ...
- .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]
构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用: ...
随机推荐
- Ubuntu——配置JDK
在Ubuntu下配置JDK环境 检查是否已经安装了JDK,执行以下命令: java -v 如果出现以下内容则说明没有安装: 程序 'java' 已包含在下列软件包中: * default-jre * ...
- spark streaming 6: BlockGenerator、RateLimiter
BlockGenerator和RateLimiter其实很简单,但是它包含了几个很重要的属性配置的处理,所以记录一下. ))) , SECONDS) From WizNote
- koa 项目实战(一)创建项目
1.安装模块 npm install koa koa-router --save npm install -g nodemon 2.入口文件 app.js const Koa = require('k ...
- python sqlalchemy 进行 mysql 数据库操作
1. 进行mysql数据库的创建,如果已经存在,就相当于进行数据库的连接操作 from sqlalchemy import create_engine from sqlalchemy.ext.decl ...
- vue 登录路由判断
router.beforeEach((to, from, next) => { // alert(sessionStorage.getItem('accessToken')) // consol ...
- C++ 学习安排
第一阶段主要是理解概念及最基本的定义和声明包含以下内容:1. 头文件2. 命名空间3. 变量和基本类型4. 函数5. 类6. 标准库类型第二部分进阶入门,主要学习C++中的某些内容的特殊性及逻辑编写1 ...
- NDK的环境配置
http://www.androiddevtools.cn/ 下载NDK, 最新版本. 解压压缩包,如解压后文件夹名为如android-ndk-r13,放在指定的位置 配置环境变量: 系统环境path ...
- BFC是什么?有什么作用?
BFC(Block Formatting Context)直译为“块级格式化范围”. 一.常见定位方案 在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案: ...
- IDEA2019.2个人使用方案
参考文档 https://segmentfault.com/a/1190000019813993?utm_source=tag-newest
- SAS数据挖掘实战篇【一】
SAS数据挖掘实战篇[一] 1数据挖掘简介 1.1数据挖掘的产生 需求是一切技术之母,管理和计算机技术的发展,促使数据挖掘技术的诞生.随着世界信息技术的迅猛发展,信息量也呈几何指数增长,如何从巨量.复 ...