class中的field,property,method,constructor

本文介绍了如何在C#中创建类以及设置字段、属性、构造函数和方法的基本语法。通过示例展示了默认构造函数与实例构造函数的区别,并解释了构造函数如何初始化类的成员。

creating class 

public class Person
{
    //empty class is created
    //field,property,method```to be added here
}

setting field, property, constructor and method

public class Person
{
    public int age {get; set;}//property
    public string name;//field
    public int TenYearsLater(int num)
    {
        return num + 10; //method
    }
    public Person()
    {
        age = 0;
        name ='john';//constructor
    }
}

constructor:
  1. default constructor : 无参数时被引用
  2. instance constructor : 有参数时被引用,可以有多个。不过多个instance constructor之间不可以有相同个数的参数,否则会出现error
  3. constructor 可以用 static 修饰,用于初始化static 的成员,此时constructor应该无参数,在只能被引用一次



### 如何在JavaScript中定义一个类 在现代JavaScript中,可以通过`class`关键字来定义一个类。这种语法是从ES6(ECMAScript 2015)引入的,提供了更为简洁的方式来创建对象并实现面向对象编程的核心概念。 #### 基本结构 以下是定义一个基本类的模板: ```javascript class ClassName { constructor(parameters) { // 初始化实例属性 } methodName() { // 方法体 } } ``` 在这个例子中,`ClassName`代表类的名字,应该遵循大驼峰命名法[^3]。`constructor`是特殊的方法,用于创建和初始化类的一个新实例。当通过`new`操作符调用该类时会自动执行此方法。 #### 添加静态成员 除了常规的实例方法外,还可以添加静态成员。静态成员属于类本身而不是某个特定的对象实例。它们通常用来表示全局状态或者工具函数。 ```javascript class ExampleClass { static staticMethod() { return "This is a static method"; } instanceMethod() { return "This is an instance method"; } } console.log(ExampleClass.staticMethod()); // 输出: This is a static method const exampleInstance = new ExampleClass(); console.log(exampleInstance.instanceMethod()); // 输出: This is an instance method ``` 这里展示了如何声明静态方法 `staticMethod()` 和实例方法 `instanceMethod()` 的区别[^1]。 #### 私有字段支持 自ES2022起,JavaScript正式加入了对私有字段的支持。这些字段只能从其所属的类内部访问,并以外部不可见的形式存在。 ```javascript class PrivateFieldDemo { #privateProperty; setPrivateValue(value) { this.#privateProperty = value; } getPrivateValue() { return this.#privateProperty; } } const demoObj = new PrivateFieldDemo(); demoObj.setPrivateValue('Secret Value'); console.log(demoObj.getPrivateValue()); // Secret Value // 尝试直接访问将会报错:Uncaught SyntaxError: Cannot directly access private field '#privateProperty' ``` 这段代码说明了如何利用井号 (`#`) 来标记私有的数据成员及其封装机制[^4]。 #### 继承与超类调用 子类可以继承父类的功能并通过`super`关键字引用父类的行为。 ```javascript class Animal { constructor(name){ this.name = name; } speak(){ console.log(`${this.name} makes a noise.`); } } class Dog extends Animal{ speak(){ super.speak(); // 调用了Animal类中的speak() console.log(`${this.name} barks.`); } } const d = new Dog("Mitzie"); d.speak(); // Mitzie makes a noise. // Mitzie barks. ``` 以上片段演示了一个简单的继承模型以及如何覆盖基类方法的同时保留原有功能[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值