C#学习笔记(一)静态与非静态

静态非静态区别; 

using System;
using System.Collections.Generic;
using System.Text;

namespace _04面向对象03静态与非静态的区别
{
    // 先添加public;如果添加static就是静态类,如果不添加static就是非静态类。
    // 静态和非静态的区别:
    // 1、在非静态类中,既可以有非静态成员,又可以有静态成员。静态类中,只能包含静态成员。
    // 2、在调用实例成员的时候,需要使用对象名.实例成员;
    // 3、在调用静态成员名的时候,需要使用类名.静态成员名
    // 4、静态方法如此,静态字段也是如此。

    // 就记住一句话:静态成员必须通过类名调用,而非静态成员(实例成员)通过使用对象名调用。

    // 静态函数中,只能访问静态成员,不允许访问实例成员。
    // 实例方法中,既可以使用静态成员,也可以使用实例成员。

    // 动态的都可以,静态的只能访问静态的。
    // 非静态类中静态、动态成员都可以有,静态类中只能包含静态成员。

    // 静态类无法创建实例化对象。因为只能用类名调用,所以无法创建对象。


 // 如何使用:
 // 1)、如果你想让你的类当做一个“工具”类,可以考虑将类写成静态类。使用频率频繁,功能固定,经常使用。因为动态类需要实例化之后再调用。麻烦。
 // 2)、静态类,在整个项目中,资源共享的。类是不占内存的。对象占内存。但是静态类例外,静态类本省占内存。

 // 人为将内存分为五块,有三块,经常使用:堆,栈,静态存储区域。
 // 完整的应用程序,有很多模块构成,比如QQ中,有邮箱,空间,微博,游戏等,进入每个界面不可能都需要输入密码:所以采用静态类;
 // 一个项目中静态类越少占用资源越少;
 // 释放资源:GC机制:Garbage Collection垃圾回收器。

 //   只有在程序执行完之后,静态类才会释放资源。静态类,始终消耗资源。

    public class Person
    {
        // 非静态成员;
        public void M1()
        {
            Console.WriteLine("我是非静态的方法");
        }
        // 静态成员;
        public static void M2()
        {
            Console.WriteLine("我是静态方法");
        }

    }
}

构造函数:

using System;
using System.Collections.Generic;
using System.Text;

namespace _04面向对象04构造函数
{
    // 构造函数:帮助我们初始化对象(给对象的每个属性依次的赋值)。
    // 构造函数是一个特殊的函数方法:
    // 1、构造函数没有返回值,连void也不能写;
    // 2、构造函数的名称,必须与类名一致;
    
    
    // 类里面可以写:字段、属性、方法、构造函数;
    public class Student
    {
        private string _name;
        public string Name
        {
            get
            {
                return _name;
            }
            set { _name = value; }
        }
        private int _age;
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }

        private char _gender;
        public char Gender
        {
            get { 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}", this.Chinese + this.English + this.Math, (this.Chinese + this.English + this.Math) / 3);
        }
    }
}

静态方法是跟类绑定的。实例化无法调用静态方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值