c#类(class)
2020-12-27 09:26
标签:创建 类的成员 ogr 副本 代码 variable str unit 成员 类的定义是以关键字class开始的,后面跟类的名称,类的主题包含一个花括号里,下面是类定义的一般格式。 请注意: 当上面的代码执行时,它会出现如下效果: 类的成员函数是一个在类的定义中有它的定义或原型的函数,就像其他的变量一样。作为类的一个成员,它能在类的任意对象上操作,且能访问该对象类的所有成员。 成员变量是类的属性(从设计角度),且它们保持私有来实现封装。这些变量只能使用公共成员函数来访问。 现在用使用上面的概念来设置并获取一个类当中不同类成员的值: 运行结果: 类的构造函数是类的一个特殊的成员函数,当创建类的新对象是执行。 构造函数的函数名称与类名称完全相同,且它没有任何返回类型。 下面的实例说明了构造函数的概念: 结果为: 默认的构造函数没有参数,但是如果需要可以带参数,这种构造参数叫做参数化构造参数,这种对象可以帮助你在创建对象的同时给对象赋初始值。 结果: 类当中的析构函数是类当中的一种特殊的成员函数,当类的对象超出范围时执行。 析构函数的名称是在类名称前面加一个波浪号(~)做前缀,它不返回值,也不带任何参数。 析构函数用于结束程序(比如关闭文件,释放内存等)之前释放资源,析构函数不能继承或重载。 下面的实例说明析构函数的概念: 结果: 我们可以使用static关键字把类成员定义成静态的,当我们声明一个类成员是静态的时,意味着无论有多少个类的对象被创建,只会有一个改静态成员的副本。 关键字static意味着类中只有一个该成员的实例,静态变量用于定义变量,因为他们的值可以通过直接调用类而不需要创建类的实例来获取,静态变量可以再成员函数或类的定义外部进行初始化。你也可以在类的内部初始化。(静态变量在外部可以通过 类.变量名 访问 。实例变量通过创建实例对象在外部 对象名.变量名 访问) 下面实例演示了静态变量的的用法: 结果: 你也可以把一个成员函数声明为static。这样的函数只能访问静态变量。静态函数在对象创建之前就已经存在了。下面的实例演示了静态函数(只能通过类名.方法名调用)的用法: 结果: 将类成员函数声明为public static无需实例化即可调用类成员函数 反之,如果不声明为static,即使和Main方法从属于同一个类,也必须经过实例化 c#类(class) 标签:创建 类的成员 ogr 副本 代码 variable str unit 成员 原文地址:https://www.cnblogs.com/jiangzijiang/p/13347212.html类
class class_name
{
// member variables
variables1;
variables2;
//member method
return Type> method1(parameter_list)
{
//method body
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace test_unityc
{
class Box
{
public double length;//长度
public double breadth;//宽度
public double height;//高度
}
class Box_tester
{
static void Main(string[] args)
{
Box box1 = new Box();//声明box1,类型为Box
Box box2 = new Box();//声明box2,类型为Box
double volume = 0.0f;//体积
//box1详述
box1.height = 5.0;
box1.length = 6.0;
box1.breadth = 7.0;
//box2详述
box2.breadth = 10.0;
box2.length = 12.0;
box2.height = 13.0;
//box1的体积
volume = box1.height * box1.breadth * box1.length;
Console.WriteLine("box1的体积{0}", volume);
//box1的体积
volume = box2.height * box2.breadth * box2.length;
Console.WriteLine("box2的体积{0}", volume);
Console.ReadKey();
}
}
}
box1的体积210
box2的体积1560
成员函数和封装
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace test_unityc
{
class Box
{
private double length;//长度
private double breadth;//宽度
private double height;//高度
public void setLength(double len)
{
length = len;
}
public void setBreadth(double bre)
{
breadth = bre;
}
public void setHeight(double hei)
{
height = hei;
}
public double getVolume()
{
return length * breadth * height;
}
}
class Box_tester
{
static void Main(string[] args)
{
Box box1 = new Box();//声明box1,类型为Box
Box box2 = new Box();//声明box2,类型为Box
double volume;//体积
//box1详述
box1.setHeight(5.0);
box1.setLength(6.0);
box1.setBreadth(7.0);
//box2详述
box2.setHeight(12);
box2.setLength(13);
box2.setBreadth(14);
//box1的体积
volume = box1.getVolume();
Console.WriteLine("box1的体积{0}", volume);
//box1的体积
volume = box2.getVolume();
Console.WriteLine("box2的体积{0}", volume);
Console.ReadKey();
}
}
}
box1的体积210
box2的体积2184
C#中的构造函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace week2._1
{
class Program
{
private double line; // 线条的长度
public Program()
{
Console.Write("对象已经创建");
}
public void setLength(double len)
{
line = len;
}
public double getLength()
{
return line;
}
static void Main(string[] args)
{
Program line = new Program();
//设置线条长度
line.setLength(6.0);
Console.Write("线条的长度为{0}", line.getLength());
Console.ReadKey();
}
}
}
对象已经创建线条的长度为6
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace week2._1
{
class Program
{
private double line; // 线条的长度
public Program(double len)//参数化构造参数
{
Console.Write("对象已经创建,length = {0}",len);
line = len;
}
public void setLength(double len)
{
line = len;
}
public double getLength()
{
return line;
}
static void Main(string[] args)
{
Program line = new Program(10.0);
Console.WriteLine("线条的长度为:{0}", line.getLength());
//设置线条长度
line.setLength(6.0);
Console.Write("线条的长度为:{0}", line.getLength());
Console.ReadKey();
}
}
}
对象已经创建,length = 10
线条的长度为:10
线条的长度为:6
c#中的析构函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace week2._1
{
class Program
{
private double line; // 线条的长度
public Program()//构造参数
{
Console.WriteLine("对象已经创建");
}
//析构函数
~Program()
{
Console.WriteLine("对象已经删除");
}
static void Main(string[] args)
{
Program line = new Program();
}
}
}
对象已经创建
对象已经删除
c#的静态成员
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace week2._1
{
public class Test
{
public static int num;
public int number;
public void addNum()
{
num++;
}
public int getNum()
{
return num;
}
}
class Program
{
static void Main(string[] args)
{
Test.num = 2;
Test test1 = new Test();
Test test2 = new Test();
test1.number = 1;
test1.addNum();
test1.addNum();
test1.addNum();
test2.addNum();
test2.addNum();
test2.addNum();
Console.WriteLine(test1.getNum());
Console.WriteLine(test2.getNum());
Console.ReadLine();
}
}
}
8
8
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace week2._1
{
public class Test
{
public static int num;
public int number;
public void addNum()
{
num++;
number--;
}
public static int getNum()
{
return num;
return number;//出错
}
}
class Program
{
static void Main(string[] args)
{
Test test1 = new Test();
Test test2 = new Test();
test1.addNum();
test1.addNum();
test1.addNum();
test2.addNum();
test2.addNum();
test2.addNum();
Console.WriteLine(Test.getNum());
Console.WriteLine(Test.getNum());
Console.ReadLine();
}
}
}
6
6