📜  CoffeeScript 类

📅  最后修改于: 2022-05-13 01:56:27.642000             🧑  作者: Mango

CoffeeScript 类

CoffeeScript 是一种面向对象的编程语言。类使大型代码可读,并且易于维护。对象是类的实例,是一个真实世界的实体,可以是人、地点、字符串、列表等。数据成员是在类中声明的变量。在本文中,我们将了解 CoffeeScript 中的类是如何工作的。

先决条件:您可以在在线 CoffeeScript 编译器上运行代码示例,或者您必须在系统上安装 CoffeeScript。参考这个,https://www.geeksforgeeks.org/coffeescript-introduction/

要在您的系统上运行 CoffeeScript,请使用以下命令,

coffee fileName.coffee

类:类是创建对象的原型。类将数据和功能绑定在一起。每次实例化类都会创建一种新类型的对象。每个类实例都有其属性和方法。类是一种用户定义的数据结构,以提高代码的可读性和易于维护。

CoffeeScript 课程的一些要点

  • “class”关键字用于定义一个类。
  • 属性是属于类的变量或数据成员。
  • 方法是属于类的变量函数。
  • 默认情况下,属性和方法是公共的。
  • 可以在对象上使用 (.)运算符访问属性和方法。

类定义语法:

class Name_Of_Class
    statement-1
    statement-2
    .
    .
    .
    statement-N

示例:在此示例中,创建了一个 p1 对象,它实例化类 MyClass 并打印“I am the class”。然后,我们在 p1 对象上调用 fun 方法,该方法执行 fun() 并打印“我是类方法”。我们将在本文后面了解有关对象和方法的更多信息。上述示例的输出如下所示:

Javascript
class MyClass
    console.log "I am the class"
  
    fun: () -> 
       console.log "I am the class method"
  
p1 = new MyClass #Here, we are creating an object
p1.fun() #Here, we are calling method of class on an object


Javascript
class Person
  constructor: (@name) ->
      console.log "Hello, " + @name 
  
p = new Person "Sam"


Javascript
class MyClass
   constructor: (@name,@age) ->
       console.log @name + " is #{@age} years old"
     
p1 = new MyClass "Sam", "12"


Javascript
class MyClass
    constructor: (@name,@age) ->
        names = @name
        ages = @age
          
    func: ->
        console.log @name + " is #{@age} years old."
         
     
p1 = new MyClass "Sam","10"
p1.func()
p1.age = '3'
p1.func()


输出:

I am the Class
I am the Class Method

构造函数:构造函数被定义为实例化对象的类。构造函数就像包含要执行的语句的方法。实例化类时将执行构造函数。如果构造函数需要任何参数,我们需要在创建对象时给它赋值。在下面的示例中,Person 类包含一个将名称作为参数的构造函数。我们将值传递给类的名称参数。创建对象时将调用此构造函数。

示例:在此示例中,我们定义了一个将名称作为参数的构造函数。因此,在创建对象 p1 时,我们传递了唯一的单个参数——名称。我们不需要括号来写参数,这就是 CoffeeScript 的简单性。当 Person 类被实例化时,将调用构造函数,并执行其中的 print 语句并在控制台中打印“Hello, Sam”。

Javascript

class Person
  constructor: (@name) ->
      console.log "Hello, " + @name 
  
p = new Person "Sam"

输出:

Hello, Sam

示例:如果构造函数需要多个参数怎么办。在下面的示例中,我们在调用类时将多个值作为用逗号分隔的参数传递 - 名称和年龄。

Javascript

class MyClass
   constructor: (@name,@age) ->
       console.log @name + " is #{@age} years old"
     
p1 = new MyClass "Sam", "12"

输出:

Sam is 12 years old

修改类的变量:我们只能修改类的公共可访问变量。如果数据成员是私有的,我们就不能访问它,也不能修改它。在下面的代码中,我们只有 -name 和 age 的公共变量。我们将姓名和年龄的值存储在变量中——姓名和年龄。让我们看看我们是否可以修改类之外的任何值。

Javascript

class MyClass
    constructor: (@name,@age) ->
        names = @name
        ages = @age
          
    func: ->
        console.log @name + " is #{@age} years old."
         
     
p1 = new MyClass "Sam","10"
p1.func()
p1.age = '3'
p1.func()

在这个例子中,我们首先在对象 p1 上调用了函数,然后我们通过对象 p1 访问 age 将 age 的值修改为 3,然后再次调用了函数。看下面的输出,age 的值改变了。这是您可以更改类外部的类公共数据成员值的方法。

输出:

Sam is 10 years old.
Sam is 3 years old.