C 언어
이 자습서에서는 예제를 통해 C#의 중첩 클래스에 대해 알아봅니다.
C#에서는 다른 클래스 내에 클래스를 정의할 수 있습니다. 중첩 클래스라고 합니다. 예를 들어,
class OuterClass {
...
class InnerClass {
...
}
}
여기에서 InnerClass
클래스를 만들었습니다. OuterClass
클래스 내부 . InnerClass
중첩 클래스라고 합니다.
중첩된 클래스의 구성원에 액세스하려면 먼저 해당 개체를 만들어야 합니다.
1.Outer 클래스의 객체 생성
OuterClass obj1 = new OuterClass();
여기에서 obj1을 만들었습니다. OuterClass
클래스의 객체 .
2. 내부 클래스의 개체 만들기
OuterClass.InnerClass obj2 = new OuterClass.InnerClass();
OuterClass.InnerClass
을 사용한 것을 볼 수 있습니다. obj2 생성 내부 클래스의 객체. InnerClass
때문입니다. OuterClass
의 중첩 클래스입니다. .
개별 클래스의 개체를 만든 후에는 개체 이름과 점 연산자를 사용하여 각 클래스의 멤버에 액세스할 수 있습니다.
using System;
namespace CsharpNestedClass {
// outer class
public class Car {
public void displayCar() {
Console.WriteLine("Car: Bugatti");
}
// inner class
public class Engine {
public void displayEngine() {
Console.WriteLine("Engine: Petrol Engine");
}
}
}
class Program {
static void Main(string[] args) {
// create object of outer class
Car sportsCar = new Car();
// access method of outer class
sportsCar.displayCar();
// create object of inner class
Car.Engine petrolEngine = new Car.Engine();
// access member of inner class
petrolEngine.displayEngine();
Console.ReadLine();
}
}
}
출력
Car: Bugatti Engine: Petrol Engine
위의 프로그램에서 Engine
Car
내부의 클래스 수업.
Program
내부 클래스에서 외부 클래스와 내부 클래스의 개체를 모두 만들었습니다.
// object of outer class
Car sportsCar = new Car();
// object of nested class
Car.Engine petrolEngine = new Car.Engine();
그런 다음 이러한 개체를 사용하여 각 클래스의 메서드에 액세스했습니다.
sportsCar.displayCar()
- Car
개체를 사용하여 외부 클래스 메서드에 액세스 petrolEngine.displayEngine()
- Engine
개체를 사용하여 내부 클래스 메서드에 액세스 참고 :외부 클래스의 객체를 사용하여 내부 클래스의 멤버에 접근할 수 없습니다. 예를 들어,
// error code
sportsCar.displayEngine();
여기에서는 displayEngine()
에 액세스할 수 없습니다. 내부 클래스 Engine
의 메소드 sportsCar 사용 외부 클래스의 객체.
내부 클래스 내부의 외부 클래스 멤버에 액세스할 수 있습니다. 이를 위해 우리는 외부 클래스의 객체를 사용합니다. 예를 들어,
using System;
namespace CsharpNestedClass {
// outer class
public class Car {
public string brand = "Bugatti";
// nested class
public class Engine {
public void displayCar() {
// object of outer class
Car sportsCar = new Car();
Console.WriteLine("Brand: " + sportsCar.brand);
}
}
}
class Program {
static void Main(string[] args) {
// object of inner class
Car.Engine engineObj = new Car.Engine();
engineObj.displayCar();
Console.ReadLine();
}
}
}
출력
Brand: Bugatti
위의 예에서는 Engine
를 중첩했습니다. Car
내부의 클래스 수업. 줄을 주목하십시오.
// inside Engine class
Car sportsCar = new Car();
Console.WriteLine("Brand: " + sportsCar.brand);
여기에서는 Car
클래스의 개체를 사용했습니다. brand 필드에 액세스 .
외부 클래스의 정적 멤버에 액세스해야 하는 경우 해당 개체를 만들 필요가 없습니다. 대신 외부 클래스의 이름을 직접 사용할 수 있습니다. 예를 들어,
using System;
namespace CsharpNestedClass {
// outer class
public class Car {
//static member of outer class
public static string brand = "Bugatti";
// nested class
public class Engine {
public void display() {
// access static member of outer class
Console.WriteLine("Brand: " + Car.brand);
}
}
}
class Program {
static void Main(string[] args) {
// object of inner class
Car.Engine obj = new Car.Engine();
obj.display();
Console.ReadLine();
}
}
}
출력
Brand: Bugatti
위의 예에서는 Engine
을 중첩했습니다. Car
내부의 클래스 수업. Car
정적 필드 brand가 있습니다. .
여기에서 정적 필드 brand에 액세스했습니다. 내부 클래스 내부(Engine
) 외부 클래스의 이름을 사용(Car
).
Console.WriteLine("Brand: " + Car.brand);
<시간> 일반 클래스와 마찬가지로 외부 클래스도 상속할 수 있습니다. 예를 들어,
using System;
namespace CsharpNestedClass {
// outer class
class Computer {
public void display() {
Console.WriteLine("Method of Computer class");
}
// nested class
public class CPU {
}
}
class Laptop : Computer {
}
class Program {
static void Main(string[] args) {
// object of derived class
Laptop obj = new Laptop();
obj.display();
Console.ReadLine();
}
}
}
출력
Method of Computer class
위의 예에서는 Laptop
클래스를 파생했습니다. 외부 클래스 Computer
에서 .
이 때문에 display()
에 액세스할 수 있습니다. Computer
클래스의 메소드 Laptop
클래스의 객체 사용 .
C#에서는 내부 클래스도 상속할 수 있습니다. 예를 들어,
using System;
namespace CsharpNestedClass {
// outer class
class Computer {
// nested class
public class CPU {
public void display() {
Console.WriteLine("Method of CPU class");
}
}
}
// inheriting inner class
class Laptop : Computer.CPU {
}
class Program {
static void Main(string[] args) {
// object of derived class
Laptop obj = new Laptop();
obj.display();
Console.ReadLine();
}
}
}
출력
Method of CPU class
위의 예에서 우리는 Laptop
을 도출했습니다. 내부 클래스 CPU
의 클래스 .
내부 클래스를 상속하기 위해 중첩 클래스와 함께 외부 클래스의 이름을 사용했음을 주목하십시오.
class Laptop : Computer.CPU {}
C 언어
C++ 상속 이 튜토리얼에서는 예제를 통해 C++의 상속에 대해 배웁니다. 상속은 C++에서 객체 지향 프로그래밍의 핵심 기능 중 하나입니다. 기존 클래스(기본 클래스)에서 새 클래스(파생 클래스)를 만들 수 있습니다. 파생 클래스는 기본 클래스의 기능을 상속합니다. 고유한 추가 기능을 가질 수 있습니다. 예를 들어, class Animal { // eat() function // sleep() function }; class Dog : public Animal { // bark() function };
PM을 수행하는 기존 방식 과거에는 같은 날짜에 도착한 특정 장비에 대해 여러 PM 주기가 있는 경우 누적 작업을 처리하기 위해 CMMS에서 여러 예약된 유지 관리 트리거를 만들어야 했습니다. 예를 들어 장비에 오일을 교체하기 위해 월간 PM이 필요하고 오일과 공기 필터를 교체하기 위해 연간 PM이 필요한 경우 2개의 예약된 유지 관리 항목을 생성한 다음 동일한 날짜에 트리거되도록 정렬해야 합니다. 그러면 두 개의 작업 주문이 생성되어 문서 작업에 추가됩니다. 이 전략은 자산이나 작업이 소수일 때 잘 작동하지만 많은 자산을 처리