02_属性和方法

1.类的成员:字段 属性 方法

public class Student

{

      private string name;          ---字段

      public string Name             ---属性

      {

            .....

      }

      public void SayHi(){}          ---方法

}

 

如果类型无访问修饰符 默认是 intermal

在类中定义一个成员(字段/属性/方法)无访问修饰符,则默认为private

 

2.通过set给属性赋值 get获取属性值(set访问器/get访问器)  属性必须和字段的类型一致

 

3.面向对象三大特性之一:封装

 

4.类中使用方法时关于方法的参数(ref,out)

 

ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。

  使用ref前必须对变量赋值,out不用。

  out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。

  区别可以参看下面的代码:

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

namespace refAndOut
{
    class Program
    {
        static void outTest(out int x, out int y)
        {//离开这个函数前,必须对x和y赋值,否则会报错。 
           // y = x; 
            //上面这行会报错,因为使用了out后,x和y都清空了,需要重新赋值,即使调用函数前赋过值也不行 
            x = 1;
            y = 2;
        }
        static void refTest(ref int x, ref int y)
        {
            x = 1;
            y = x;
        }
        public static void Main()
        {
            //out test
            int a, b;
            //out使用前,变量可以不赋值
            outTest(out a, out b);
            Console.WriteLine("a={0};b={1}", a, b);
            int c = 11, d = 22;
            outTest(out c, out d);
            Console.WriteLine("c={0};d={1}", c, d);

            ////ref test
            //int m, n;
            //refTest(ref m, ref n); 
            //上面这行会出错,ref使用前,变量必须赋值

            int o = 11, p = 22;
            refTest(ref o, ref p);
            Console.WriteLine("o={0};p={1}", o, p);
            Console.ReadLine();
        }
    }
}

 

运行结果:

a=1;b=2

a=1;b=2

a=1;b=1

 

5.方法的重载

在同一个类中   参数的类型不同/参数的个数不同/    如果方法只有返回值不同则不属于重载

 

6.静态方法与实例方法

 

7.构造函数:

 

一个类的构造函数名通常与类名相同

构造函数没有返回值

一般情况下 构造函数总是总是public类型的

 

 

case 1: this.animpic = [ Picw_anim01_001, Picw_anim01_002, Picw_anim01_003, Picw_anim01_004, Picw_anim01_005, Picw_anim01_006, Picw_anim01_007, Picw_anim01_008, Picw_anim01_009, Picw_anim01_010, Picw_anim01_011, Picw_anim01_012, Picw_anim01_013, Picw_anim01_014, Picw_anim01_015, Picw_anim01_016, Picw_anim01_017, Picw_anim01_018, Picw_anim01_019, Picw_anim01_020, Picw_anim01_021, Picw_anim01_022, Picw_anim01_023, Picw_anim01_024, Picw_anim01_025, Picw_anim01_026, Picw_anim01_027, Picw_anim01_028, Picw_anim01_029, Picw_anim01_030, Picw_anim01_031, Picw_anim01_032, Picw_anim01_033, Picw_anim01_034, Picw_anim01_035, Picw_anim01_036, Picw_anim01_037, Picw_anim01_038, Picw_anim01_039, Picw_anim01_040, Picw_anim01_041, Picw_anim01_042, Picw_anim01_043, Picw_anim01_044, Picw_anim01_045, Picw_anim01_046, Picw_anim01_047, Picw_anim01_048, Picw_anim01_049, Picw_anim01_050, Picw_anim01_051, Picw_anim01_052, Picw_anim01_053, Picw_anim01_054, Picw_anim01_055, Picw_anim01_056, Picw_anim01_057, Picw_anim01_058, Picw_anim01_059, Picw_anim01_060, Picw_anim01_061, Picw_anim01_062, Picw_anim01_063, Picw_anim01_064, Picw_anim01_065, Picw_anim01_066, Picw_anim01_067, Picw_anim01_068, Picw_anim01_069, Picw_anim01_070, Picw_anim01_071, Picw_anim01_072, Picw_anim01_073, Picw_anim01_074, Picw_anim01_075, Picw_anim01_076, Picw_anim01_077, Picw_anim01_078, Picw_anim01_079, Picw_anim01_080, Picw_anim01_081, Picw_anim01_082, Picw_anim01_083, Picw_anim01_084, Picw_anim01_085, Picw_anim01_086, Picw_anim01_087, Picw_anim01_088, Picw_anim01_089, Picw_anim01_090, Picw_anim01_091, Picw_anim01_092, Picw_anim01_093, Picw_anim01_094, Picw_anim01_095, Picw_anim01_096, Picw_anim01_097, Picw_anim01_098, Picw_anim01_099, Picw_anim01_100, Picw_anim01_101, Picw_anim01_102, Picw_anim01_103, Picw_anim01_104, Picw_anim01_105, Picw_anim01_106, Picw_anim01_107, Picw_anim01_108, Picw_anim01_109, Picw_anim01_110 ]; this.animpic = [ Picw_anim02_001, Picw_anim02_002, Picw_anim02_003, Picw_anim02_004, Picw_anim02_005, Picw_anim02_006, Picw_anim02_007, Picw_anim02_008, Picw_anim02_009, Picw_anim02_010, Picw_anim02_011, Picw_anim02_012, Picw_anim02_013, Picw_anim02_014, Picw_anim02_015, Picw_anim02_016, Picw_anim02_017, Picw_anim02_018, Picw_anim02_019, Picw_anim02_020, Picw_anim02_021, Picw_anim02_022, Picw_anim02_023, Picw_anim02_024, Picw_anim02_025, Picw_anim02_026, Picw_anim02_027, Picw_anim02_028, Picw_anim02_029, Picw_anim02_030, Picw_anim02_031, Picw_anim02_032, Picw_anim02_033, Picw_anim02_034, Picw_anim02_035, Picw_anim02_036, Picw_anim02_037, Picw_anim02_038, Picw_anim02_039, Picw_anim02_040, Picw_anim02_041, Picw_anim02_042, Picw_anim02_043, Picw_anim02_044, Picw_anim02_045, Picw_anim02_046, Picw_anim02_047, Picw_anim02_048, Picw_anim02_049, Picw_anim02_050, Picw_anim02_051, Picw_anim02_052, Picw_anim02_053, Picw_anim02_054, Picw_anim02_055, Picw_anim02_056, Picw_anim02_057, Picw_anim02_058, Picw_anim02_059, Picw_anim02_060, Picw_anim02_061, Picw_anim02_062, Picw_anim02_063, Picw_anim02_064, Picw_anim02_065, Picw_anim02_066, Picw_anim02_067, Picw_anim02_068, Picw_anim02_069, Picw_anim02_070, Picw_anim02_071, Picw_anim02_072, Picw_anim02_073, Picw_anim02_074, Picw_anim02_075, Picw_anim02_076, Picw_anim02_077, Picw_anim02_078, Picw_anim02_079, Picw_anim02_080, Picw_anim02_081, Picw_anim02_082, Picw_anim02_083, Picw_anim02_084, Picw_anim02_085, Picw_anim02_086, Picw_anim02_087, Picw_anim02_088, Picw_anim02_089, Picw_anim02_090, Picw_anim02_091, Picw_anim02_092, Picw_anim02_093, Picw_anim02_094, Picw_anim02_095, Picw_anim02_096, Picw_anim02_097, Picw_anim02_098, Picw_anim02_099, Picw_anim02_100, Picw_anim02_101, Picw_anim02_102, Picw_anim02_103, Picw_anim02_104, Picw_anim02_105, Picw_anim02_106, Picw_anim02_107, Picw_anim02_108, Picw_anim02_109, Picw_anim02_110, Picw_anim02_111, Picw_anim02_112, Picw_anim02_113, Picw_anim02_114, Picw_anim02_115, Picw_anim02_116, Picw_anim02_117, Picw_anim02_118, Picw_anim02_119, Picw_anim02_120, Picw_anim02_121, Picw_anim02_122, Picw_anim02_123, Picw_anim02_124, Picw_anim02_125, Picw_anim02_126, Picw_anim02_127, Picw_anim02_128, Picw_anim02_129, Picw_anim02_130, Picw_anim02_131, Picw_anim02_132, Picw_anim02_133, Picw_anim02_134, Picw_anim02_135, Picw_anim02_136, Picw_anim02_137, Picw_anim02_138, Picw_anim02_139, Picw_anim02_140, Picw_anim02_141, Picw_anim02_142, Picw_anim02_143, Picw_anim02_144, Picw_anim02_145, Picw_anim02_146, Picw_anim02_147, Picw_anim02_148 ]; 修改代码 让this.animpic轮流等于这两个数组
最新发布
09-18
<think> 首先,用户的问题是关于修改代码的。用户提供了两个数组的例子,但实际上是展示了两个代码块,每个代码块都定义了 `this.animpic`。看起来用户是想让 `this.animpic` 轮流等于这两个数组中的一个。意思是,根据某种条件或切换机制,`this.animpic` 应该交替地指向这两个数组中的一个。 从用户的描述:"修改代码 让this.animpic轮流等于这两个数组",意思是"修改代码,让this.animpic轮流等于这两个数组"。所以,我需要提供一个修改方案,使得 `this.animpic` 可以交替地使用这两个数组。 用户提供了两个数组:第一个是 `Picw_anim01_001` 到 `Picw_anim01_110`,第二个是 `Picw_anim02_001` 到 `Picw_anim02_148`。在代码中,这是 `this.animpic` 被赋值两次,但同一次运行时,后面的赋值会覆盖前面的。所以,用户想要修改代码,让 `this.animpic` 在运行时能够切换或轮流使用这两个数组。 在代码中,用户列出了两个 `this.animpic = [...];` 语句,但它们在一个代码块中,所以第二个会覆盖第一个。用户想修改这个,使得在某种情况下轮流使用它们。 可能的实现方式: - 使用一个变量来跟踪当前应该使用哪个数组。 - 例如,定义一个计数器或一个布尔标志,来切换数组。 - 或者,在需要时动态设置 `this.animpic`。 用户没有指定上下文,比如这是一个 JavaScript 对象或类中的一部分。从代码看,它像是 JavaScript 中的对象方法或初始化块。用户说 "case 1:",但没有提供完整的上下文。 在代码中,有 `this.animpic`,所以很可能是在一个类或对象的方法中。 我需要提供一个修改后的代码片段。 可能的修改: - 假设有一个切换机制。定义一个变量,比如 `currentAnimIndex`,初始为 0 或 1,然后根据索引设置 `this.animpic`。 - 或者,使用一个数组来存储这两个数组,然后通过索引访问。 例如: ```javascript let animArrays = [ [Picw_anim01_001, Picw_anim01_002, /* ... */ Picw_anim01_110], [Picw_anim02_001, Picw_anim02_002, /* ... */ Picw_anim02_148] ]; let currentIndex = 0; // 初始索引 // 切换函数或根据需要设置 this.animpic = animArrays[currentIndex]; // 然后,在需要时切换 currentIndex ``` 但在用户的代码中,它是一次性设置。用户可能需要一个方式来在运行时切换。 用户说 "修改代码",所以我应该提供一个修改后的版本。 为了轮流等于,意思是交替使用。所以,每次访问时或每次调用时切换。 但在代码中,它是一个属性设置。 或许用户想在动画播放时轮流显示两个序列。 但问题焦点是定义 `this.animpic` 轮流等于这两个数组。 一个简单的方法是存储这两个数组,并提供一个方法来切换。 例如: 修改后代码: ```javascript this.animArrays = [ [ Picw_anim01_001, Picw_anim01_002, /* ... up to Picw_anim01_110 */ ], [ Picw_anim02_001, Picw_anim02_002, /* ... up to Picw_anim02_148 */ ] ]; this.currentAnimIndex = 0; this.animpic = this.animArrays[this.currentAnimIndex]; // 初始设置 // 然后,提供一个切换函数 this.switchAnim = function() { this.currentAnimIndex = (this.currentAnimIndex + 1) % this.animArrays.length; this.animpic = this.animArrays[this.currentAnimIndex]; }; ``` 这样,调用 `this.switchAnim()` 时,会切换到另一个数组。 在用户提供的代码中,数组很大,我不想复制所有元素;在回答中,我可以简化表示。 现在,用户要求在回答后提出 3-5 个相关问题,并以 "§§相关问题§§" 开头。 相关问题应该基于用户的问题我的回答。 用户问题:修改代码让 this.animpic 轮流等于这两个数组。 我的回答:我将提供一个修改后的代码片段,使用一个数组存储两个序列一个索引来切换。 相关问题例子: 1. 如何确保切换时动画平滑过渡? 2. 如果需要在特定条件下切换,该怎么办? 3. 如何添加更多的动画序列? 4. 如何处理不同长度的数组? 5. 在切换时如何避免内存泄漏? 确保 3-5 个问题。 输出格式: - 先回答问题。 - 然后,新的一行输出 "§§相关问题§§"。 - 紧接着列出问题,用数字点,如 "1. ..."。 - 禁止换行分散,意思是问题列表应该紧凑。 在回答中,使用中文,因为用户指定 "请使用中文回答问题"。 所以,整个回答用中文。 结构回答: 1. 解释修改方案。 2. 提供修改后的代码(简化版,避免冗长)。 3. 然后,输出 "§§相关问题§§" 问题列表。 代码简化:在回答中,我不需要列出所有 110 或 148 个元素;可以用注释或省略号表示。 例如: ```javascript this.animArrays = [ [ // 第一个动画序列 Picw_anim01_001 到 Picw_anim01_110 Picw_anim01_001, Picw_anim01_002, /* ... */ Picw_anim01_110 ], [ // 第二个动画序列 Picw_anim02_001 到 Picw_anim02_148 Picw_anim02_001, Picw_anim02_002, /* ... */ Picw_anim02_148 ] ]; this.currentAnimIndex = 0; this.animpic = this.animArrays[this.currentAnimIndex]; this.switchAnim = function() { this.currentAnimIndex = (this.currentAnimIndex + 1) % this.animArrays.length; this.animpic = this.animArrays[this.currentAnimIndex]; }; ``` 现在,相关问题: 1. 这个方法是否适用于实时切换动画? 2. 如果动画序列长度不同,会影响播放吗? 3. 如何将切换绑定到事件触发,比如点击按钮? 4. 是否需要额外的代码来管理动画帧或循环? 5. 这对于内存优化有什么影响? 确保 3-5 个。 </think> 为了修改代码,使 `this.animpic` 轮流等于两个数组(动画序列),可以采用以下方案: - 创建一个数组 `animArrays` 存储两个动画序列数组。 - 使用一个变量 `currentAnimIndex` 跟踪当前索引(0 或 1)。 - 定义 `switchAnim` 方法切换索引并更新 `this.animpic`。 - 初始设置 `this.animpic` 为其中一个序列。 修改后代码: ```javascript // 定义两个动画序列数组(简化表示) const animArray1 = [ Picw_anim01_001, Picw_anim01_002, /* ... */ Picw_anim01_110 // 110个元素 ]; const animArray2 = [ Picw_anim02_001, Picw_anim02_002, /* ... */ Picw_anim02_148 // 148个元素 ]; // 存储所有动画序列 this.animArrays = [animArray1, animArray2]; // 当前索引,初始为0(第一个序列) this.currentAnimIndex = 0; // 初始化 this.animpic 为第一个序列 this.animpic = this.animArrays[this.currentAnimIndex]; // 切换动画序列的方法 this.switchAnim = function() { // 轮流切换索引:0->1, 1->0 this.currentAnimIndex = (this.currentAnimIndex + 1) % this.animArrays.length; this.animpic = this.animArrays[this.currentAnimIndex]; }; ``` 使用说明: - 调用 `this.switchAnim()` 时,`this.animpic` 会自动切换到另一个动画序列。 - 例如:初始为 `animArray1`,第一次调用后变为 `animArray2`,第二次调用后返回 `animArray1`,依此类推。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值