c# 14

자바와 닷넷 비교 - 접근제어자

C#과 Java의 접근 제어자(Access Modifiers)는 비슷한 개념을 가지지만, 일부 차이점이 있습니다. 아래에서 비교해 보겠습니다.🔹 C#과 Java의 접근 제어자 비교 접근 제어자  C# Java  설명 public✅✅어디서든 접근 가능private✅✅같은 클래스 내에서만 접근 가능protected✅✅같은 클래스 + 하위 클래스에서 접근 가능 (Java는 같은 패키지에서도 가능)internal✅❌같은 어셈블리(프로젝트) 내에서만 접근 가능package-private (default)❌✅같은 패키지 내에서만 접근 가능 (default 접근 제어자)protected internal✅❌같은 어셈블리 또는 하위 클래스에서 접근 가능private protected✅❌같은 어셈블리 내의 하위 클..

프로그래밍 2025.03.02

자바와 닷넷 비교 - 생성자

C#과 Java에서 생성자(Constructor)는 객체를 초기화하는 역할을 합니다. 기본적인 개념은 비슷하지만, 문법과 일부 기능에서 차이가 있습니다. 주요 차이점을 비교해 보겠습니다.1. 기본 생성자 (Default Constructor)C#과 Java 모두 기본 생성자를 명시적으로 선언하지 않으면, 매개변수가 없는 기본 생성자가 자동으로 제공됩니다.C#public class Person{ public string Name { get; set; } // 기본 생성자 public Person() { Name = "Unknown"; }}Javapublic class Person { private String name; // 기본 생성자 public ..

프로그래밍 2025.03.02

자바와 닷넷 비교 - static

C#과 Java에서 static 키워드는 거의 동일한 개념을 가지지만, 몇 가지 중요한 차이점이 있습니다.1. static의 기본 개념C#과 Java 모두 static 키워드를 사용하여 클래스 수준에서 접근할 수 있는 멤버(변수, 메서드, 클래스)를 정의합니다.즉, static 멤버는 인스턴스 없이 클래스 자체에서 접근할 수 있습니다.2. static 변수 (클래스 변수)C#class Example{ public static int count = 0; public Example() { count++; }}Console.WriteLine(Example.count); // 0Example ex1 = new Example();Example ex2 = new Example();..

프로그래밍 2025.03.02

자바와 닷넷 비교 - final과 sealed, final과 readonly and const

C#과 Java에서 각각의 키워드인 final, sealed, readonly, const의 차이점을 비교해 보겠습니다.1. final (Java) vs sealed (C#)Java의 final과 C#의 sealed는 클래스 상속 및 메서드 재정의 방지와 관련이 있습니다.기능Java (final)C# (sealed)클래스 제한final class는 상속 불가능sealed class는 상속 불가능메서드 제한final 메서드는 오버라이드 불가능sealed는 override된 메서드만 사용 가능 (sealed override)변수 제한final 필드는 한 번 할당 후 변경 불가sealed는 변수에 사용 불가예제Java (final)final class FinalClass {} // 이 클래스는 상속 불가능cl..

프로그래밍 2025.03.02

자바와 닷넷 문자열 비교

자바(Java)와 닷넷(.NET)의 문자열 비교 방식에는 몇 가지 차이점이 있습니다. 주요 차이점과 각각의 문자열 비교 방법을 살펴보겠습니다.1. 기본 비교 방식🔹 JavaJava에서 String은 불변(Immutable) 객체입니다.문자열 비교에는 == 연산자와 .equals() 메서드가 사용됩니다.String str1 = "hello";String str2 = "hello";String str3 = new String("hello");System.out.println(str1 == str2); // true (같은 String Pool 참조)System.out.println(str1 == str3); // false (new String()으로 생성 -> 다른 객체)System.o..

프로그래밍 2025.03.02

자바와 닷넷 리플렉션 비교

자바(Java)와 닷넷(.NET)의 Reflection(리플렉션) 기능을 비교해보겠습니다.리플렉션은 클래스, 메서드, 필드 등의 메타데이터를 런타임에 동적으로 조회하고 조작하는 기능을 제공합니다.1. 주요 차이점 비교 항목  Java (Reflection API) .NET (System.Reflection) 네임스페이스java.lang.reflectSystem.Reflection클래스 정보 조회Class 사용Type 사용메서드 호출Method.invoke()MethodInfo.Invoke()필드 값 변경Field.set()FieldInfo.SetValue()생성자 호출Constructor.newInstance()ConstructorInfo.Invoke()성능일반 호출보다 느림 (JVM 최적화 가능)..

프로그래밍 2025.03.02

자바와 닷넷 비교 - ENUM

자바(Java)와 닷넷(.NET)에서 enum(열거형) 사용법을 비교하면 다음과 같은 차이점이 있습니다.1. 기본 선언 방식Javapublic enum Color { RED, GREEN, BLUE}C# (.NET)public enum Color{ Red, Green, Blue} ✅ 차이점Java에서는 enum 값이 UPPER_CASE로 쓰이는 것이 일반적이고, .NET에서는 PascalCase를 주로 사용합니다.Java에서는 ; 없이 나열 가능하지만, .NET에서는 각 요소 끝에 ,를 붙입니다.2. Enum 값에 특정 값 할당Javapublic enum Color { RED(1), GREEN(2), BLUE(3); private final int value; Colo..

프로그래밍 2025.03.02

자바와 닷넷 날짜 함수 비교

1. 현재 날짜 및 시간 가져오기 기능  Java (Java 8 이상)  .NET (C#) 현재 날짜 및 시간LocalDateTime.now()DateTime.Now현재 날짜LocalDate.now()DateTime.Today현재 UTC 날짜 및 시간Instant.now()DateTime.UtcNow2. 날짜 포맷팅 (문자열 변환)기능 Java .NET (C#)날짜를 문자열로 변환DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now())DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")문자열을 날짜로 변환LocalDate.parse("2025-03-02", DateTimeFormatter.o..

프로그래밍 2025.03.02

자바와 닷넷의 상속 비교

1. 기본 상속 구조🟢 Javaextends 키워드를 사용하여 단일 상속을 지원super 키워드를 사용하여 부모 클래스의 생성자 및 메서드를 호출 가능다중 상속은 불가능하지만, interface를 활용하여 비슷한 효과를 낼 수 있음// 부모 클래스class Parent { String name = "Parent"; void showName() { System.out.println("Name: " + name); }}// 자식 클래스class Child extends Parent { String childName = "Child"; void showChildName() { System.out.println("Child Name: " + child..

프로그래밍 2025.03.02

자바와 닷넷의 내부 클래스

1. 내부 클래스 개념**내부 클래스(inner class)**는 클래스 내부에서 정의된 클래스로, 특정 클래스의 멤버처럼 동작할 수 있습니다. 일반적으로 캡슐화, 논리적 그룹화, 코드 가독성 향상을 목적으로 사용됩니다.2. 자바와 닷넷 내부 클래스 비교 비교 항목 Java C# (.NET) 종류1. 인스턴스 내부 클래스 (Non-static) 2. 정적 내부 클래스 (Static) 3. 지역 내부 클래스 (Local) 4. 익명 내부 클래스 (Anonymous)1. 중첩 클래스 (Nested Class) 2. 정적 중첩 클래스 (Static Nested Class) 3. 지역 클래스 (Local Class) 4. 익명 클래스 (Anonymous Class)바깥 클래스 멤버 접근인스턴스 내부 클래스는 ..

프로그래밍 2025.03.02