C#高手来 谢谢 10
三、写出以下程序的运行结果(每题5分,共20分)1.usingSystem;classTest{publicstaticvoidMain(){intx=5;inty=x+...
三、写出以下程序的运行结果(每题5分,共20分)
1.using System;
class Test
{ public static void Main()
{ int x = 5;
int y = x++;
Console.WriteLine(y);
y=++x;
Console.WriteLine(x);
} }
答案:
2.描述下列方法的功能。
Static int SA(int a,int b)
{ if (a>b)
return 1;
else if (a==b)
return 0;
else
return -1; }
答:
3.当使用new B()创建B的实例时,产生什么输出?
Using System;
class A
{ public A()
{ PrintFields(); }
public virtual void PrintFields() { }
}
class B : A
{ int x = 1;
int y;
public B()
{ y = -1;
PrintFields(); }
public override void PrintFields()
{ Console.WriteLine(“x={0},y={1}”, x, y); }
}
class Program
{ static void Main(string[] args)
{ B b = new B();
Console.Read();
} }
答案:
4. 写出下列方法的功能。
Static float FH()
{ float y=0,n=0;
int x = Convert.ToInt32(Console.ReadLine());
while (x!=-1)
{ n++; y+=x;
x = Convert.ToInt32(Console.ReadLine());
}
if (n==0)
return y;
else
return y/n;
}
答案: 展开
1.using System;
class Test
{ public static void Main()
{ int x = 5;
int y = x++;
Console.WriteLine(y);
y=++x;
Console.WriteLine(x);
} }
答案:
2.描述下列方法的功能。
Static int SA(int a,int b)
{ if (a>b)
return 1;
else if (a==b)
return 0;
else
return -1; }
答:
3.当使用new B()创建B的实例时,产生什么输出?
Using System;
class A
{ public A()
{ PrintFields(); }
public virtual void PrintFields() { }
}
class B : A
{ int x = 1;
int y;
public B()
{ y = -1;
PrintFields(); }
public override void PrintFields()
{ Console.WriteLine(“x={0},y={1}”, x, y); }
}
class Program
{ static void Main(string[] args)
{ B b = new B();
Console.Read();
} }
答案:
4. 写出下列方法的功能。
Static float FH()
{ float y=0,n=0;
int x = Convert.ToInt32(Console.ReadLine());
while (x!=-1)
{ n++; y+=x;
x = Convert.ToInt32(Console.ReadLine());
}
if (n==0)
return y;
else
return y/n;
}
答案: 展开
1个回答
展开全部
1、static{}语句块执行的时机,即类被加载准确含义:
(1)用Class.forName()显示加载的时候;
(2)实例化一个类的时候,如将main()函数的内容改为:Test t=new Test();//这种形式其实和1相比,原理是相同的,都是显示的加载这个类,读者可以验证Test t=new Test();和Test t=(Test)Class.forName().newInstance();这两条语句效果相同。
(3)调用类的静态方法的时候,如将main()函数的内容改为:Test.display();
(4)调用类的静态变量的时候,如将main()函数的内容改为:System.out.println(Test.X);
总体来说就这四种情况,但是我们特别需要注意一下两点:
(1)调用类的静态常量的时候,是不会加载类的,即不会执行static{}语句块,读者可以自己验证一下(将main()函数的内容改为System.out.println(Test.Y);),你会发现程序只输出了一个200;(这是java虚拟机的规定,当访问类的静态常量时,如果编译器可以计算出常量的值,则不会加载类,否则会加载类)
(2)用Class.forName()形式的时候,我们也可以自己设定要不要加载类,如将Class.forName("Test")改为 Class.forName("Test",false,StaticBlockTest.class.getClassLoader()),你会发现程序什么都没有输出,即Test没有被加载,static{}没有被执行。
(1)用Class.forName()显示加载的时候;
(2)实例化一个类的时候,如将main()函数的内容改为:Test t=new Test();//这种形式其实和1相比,原理是相同的,都是显示的加载这个类,读者可以验证Test t=new Test();和Test t=(Test)Class.forName().newInstance();这两条语句效果相同。
(3)调用类的静态方法的时候,如将main()函数的内容改为:Test.display();
(4)调用类的静态变量的时候,如将main()函数的内容改为:System.out.println(Test.X);
总体来说就这四种情况,但是我们特别需要注意一下两点:
(1)调用类的静态常量的时候,是不会加载类的,即不会执行static{}语句块,读者可以自己验证一下(将main()函数的内容改为System.out.println(Test.Y);),你会发现程序只输出了一个200;(这是java虚拟机的规定,当访问类的静态常量时,如果编译器可以计算出常量的值,则不会加载类,否则会加载类)
(2)用Class.forName()形式的时候,我们也可以自己设定要不要加载类,如将Class.forName("Test")改为 Class.forName("Test",false,StaticBlockTest.class.getClassLoader()),你会发现程序什么都没有输出,即Test没有被加载,static{}没有被执行。
追问
直接给答案就好
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询