栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C#类和对象的理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#类和对象的理解

 1.类的定义

类:具有相同属性和方法的一组对象的集合

2.对象的定义

对象:对象是用来描述客观事物的一个实体。万物皆对象

人、教室、笔记本、空气

3.先来说一下类的属性和行为

属性相当于你是人你有名字有性别有年龄这种都可以称为属性 ,其他人也拥有这种属性

行为相当于你可以做某种事情比如你去游泳这是一种行为你去干饭这也是一种行为。

属性一般在类中用代码来理解就相当于写一个成员变量

成员变量是你类中定义出来的变量所以是成员变量,这个变量来源于你这个类。

也能去定义成员常量。

还有就是一般成员变量如果你不添加任何修饰符的情况下在类中它默认为private(私有的)(类中的一切都默认为私有因为是已经封装在类里面的东西你在外面就只能看到这个类名)举个例子:你是一个人你在外面你没有对外公布你的名字或者做出某种行为别人是不知道你到底是个什么样的人的他们唯一能知道的也就只是你是一个人而已。

也就是你当前类中成员类外访问不到你这个变量当然如果你把它修饰成public(公有的)它就能

在类外被你的类对象调用。

当然还有一种办法去将你定义的私有变量在类外进行调用,你需要去定义一个属性使用你这个变量

相似的名字相同的类型 然后用get 和set 获取到这个变量   set可以理解成设置这个变量等于这个属性 get可以理解成将这个公有的属性在外获得的值传递给这个私有变量 属性也就是这样 类似于一个空壳为变量做着事 抛头露面但是好处不是它的

属性的定义代码

int a;|| private int a;

public int A{

get{a=return;}

set{value=a;}

}

接下来是行为

行为在代码中也就是方法也可以说是函数

可以用来实现某种操作或者说出什么话

接下来我会将行为说为方法。

方法声明和成员变量区别还是有一些的

成员变量是 修饰符 数据类型 变量名来声明。

方法是 修饰符 返回类型 方法名 参数列表 和表达式来声明

public void   A(){} 这是一个经典的无返回值无参方法。

public void   B(int  a){}这是一个无返回值带参的方法。

public int    C(int a){ return a;}这是一个有返回值有参数的带参方法。

public int    C(){ return 5;}这是一个有返回值无参数的无参方法。

接下来要讲的static关键字

static关键字也被称为静态关键字

一般用来声明静态变量和静态方法

静态变量和静态方法的用法

静态方法是专门为静态变量用的方法

静态变量可以在普通方法里面使用也可以在静态方法中使用。

静态变量是全局的变量生命周期覆盖当前类全局。

静态变量只有一个内存地址而成员变量是类对象分配的地址,

如果你给它们两个值赋值自增 使用多个对象去调用成员变量每次都会换内存自增

而你静态变量只有一个内存所以会一直自增每调用一次自增一次。

还有就是当你想输出静态变量的时候需要用类名去.这个静态变量去输出 对象是.不了的

接下来讲this关键字

this关键字一般用来.你当前类的成员变量也就相当于.当前类的变量

this一般用于在局部变量中使用如果局部变量有同名的成员变量是不会报错的

这时候就可以用this.同名变量来输出成员变量,局部变量可以直接输出虽然和成员变量同名

但是同名变量会覆盖就比如你先在类中初始化好了这个成员变量的值我在方法中写了一个局部变量

再为它初始化了一个值不使用this的话只会输出当前局部变量

后面还能被用来写索引器。

2.构造方法

这是一个颇为特殊的方法但它也是方法只是用类名写出来的方法它和其他方法一样

唯一的区别就是构造方法它没有返回值,当然写法也不一样。构造方法有无参构造

也有无参构造 类如果你不写无参构造方法它会默认为你添加一个无参构造方法

当然如果你写了带参构造方法你如果不声明一个无参构造方法就系统不会为你提供默认

无参构造方法。

(构造方法在后续被继承你需要用其他关键字才能成功的继承过来。)

3.方法重载

这个直接上列子

public void a(){}

public void  a(int a){}

public  void a(int a,int b){}

public void a(string a){}

这些都是方法的重载

方法重载就是修饰符相同返回值名字相同 但是参数列表不相同

一般方法重载是为构造方法提供使用的

4.局部变量和成员变量

string name ;//成员变量,系统默认提供一个值

void Print()

{

      int age=20;//局部变量

      Console.WriteLine(age);

      Console.WriteLine(name);

}

作用域不同

局部变量的作用域仅限于定义它的方法

成员变量的作用域在整个类内部都是可见的

初始值不同

系统会给成员变量一个初始值

系统不会给局部变量赋予初始值

5.对象的引用

class Test14

    {

        int a = 1;

        void Get()

        {

            Console.WriteLine(a);

        }

        void Get2(Test14 t)//第三种引用

        {

            t.a++;

        }

        Test14 Get3(Test14 t)//第四种引用

        {

            t.a++;

            return t;

        }

        static void Main(string[] args)

        {

            Test14 t = new Test14();

            t.a = 2;//第一种引用

            Test14 t2 = t;//第二种引用

            //Console.WriteLine(t.a+"t"+t2.a);// 2  2

            //t2.Get();

            //t.Get2(t);

            //Console.WriteLine(t.a + "t" + t2.a);// 3  3

            Test14 t3 = t.Get3(t);

            t3.a++;

            Console.WriteLine(t.a + "t" + t3.a);// 4  4

        }

    }

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315181.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号