类和对象,数组

一 类和对象

1.1成员变量与局部变量

作用域不同

 

 

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

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

初始值不同

 

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

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

 1.2  static

静态变量和实例变量两者的区别:

 

静态变量在内存中只有一个内存空间,在加载类的过程中完成静态变量的内存分配;每创建一个新的实例对象,就会为实例变量分配不同的内存。

静态变量可以直接通过类名来访问,实例变量需要通过各个对象访问。

静态方法和实例方法两者的区别:

 

  1. 静态方法只能访问静态变量;实例方法既可以访问实例变量,也可以访问静态变量
  2. 静态方法在Main方法中可以直接使用;实例方法在Main方法中必须通过对象调

1.3 this

this:指的是类的实例

this的用法:

 

1、当成员变量和局部变量同名时,如果想调用成员变量,用this

2、当构造方法互相调用时,用this

1.4 构造方法

定义:

方法名称和类名一致的方法,没有任何返回类型,并且也没有void。

特征:如果没用写构造方法  系统会默认提供一个无参的构造方法,方法里面是空的

       如果写 会覆盖系统默认的

作用:初始化成员变量

1.5 方法重载

同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表,这就称为方法重载

方法的重载的规则:

  • 方法名称必须相同。
  • 参数列表必须不同。
  • 方法的返回类型可以相同也可以不相同。
  • 仅仅返回类型不同不足以称为方法的重载。

1.6 对象的引用

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

        }

    }

二 数组

2.1 定义

3W:why  what  when

1H:how

Why:解决大批量数据计算问题

有10万个变量:其中3万个整数,4万个双精度,2万个字符串,1万个对象

整数数组:3万个整数

双精度数组:4万个双精度

字符串数组:2万个字符串

对象数组:1万个对象

What:定义

动态数组(显示数组):数据类型[]  变量名=new 数据类型[大小];

int[] a=new int[30000];

2.2 访问

数组的访问:a[i]   i:下标(从0开始);

2.3 排序

void Get5()

        {

            //冒泡排序

            int[] a = { 95, 74, 63, 87, 55 };

            int t;

            for (int i = 0; i < a.Length; i++)

            {

                for (int j = i; j < a.Length; j++)

                {

                    if (a[i] > a[j])//由小到大

                    {

                        t = a[i];

                        a[i] = a[j];

                        a[j] = t;

                    }

                }

            }

            for (int i = 0; i < a.Length; i++)

            {

                Console.WriteLine(a[i]);

            }

       }

2.4 求最大值

void Get6()

        {

            //求最高分

            int[] a = { 45, 74, 63, 87, 55 };

            //1、假设数组中的一个数为最高分

            int max = a[2];

            //2、循环数组,找出比max还大的分,把这个分赋值给max

            for (int i = 0; i < a.Length; i++)

            {

                if (a[i] > max)

                {

                    max = a[i];

                }

            }

            Console.WriteLine(max);

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值