TIL/JAVA 13

[TIL] 왜 2차원 배열은 '열(colum)'의 개수를 명시하지 않고도 초기화가 가능할까? (JAVA)

오늘 문제 풀이를 하면서 2차원 배열을 사용할 일이 있었는데, 문득 2차원 배열이 '열'을 초기화하지 않고도 사용할 수 있는 이유가 궁금해졌다. 아직 이 의문이 완전히 해소된건 아니지만, GPT와의 열띤 토론으로 도출해낸 나만의 생각을 정리해본다.  어디까지나 추측이라 흐지부지 끝남 주의..오류 정정은 언제나 환영이다!!! 제발...일단 JAVA에서는 2차원 배열을 선언할 때, '행'의 개수만 초기화해도 된다.// 행의 개수만 지정하여 2차원 배열 선언int[][] array = new int[3][];// 각 행의 열의 개수를 개별적으로 초기화array[0] = new int[4]; // 첫 번째 행에 4개의 열 할당array[1] = new int[5]; // 두 번째 행에 5개의 열 할당array[..

TIL/JAVA 2024.11.08

[TIL] 인터페이스 - 다중 상속 (JAVA)

드디어 다형성 부분을 끝냈다. 추상 클래스, 순수 추상 클래스, 인터페이스 등 여러 흥미로운 내용을 학습했다. 오늘은 그중에서도 가장 인상 깊었던 '다중 상속'에 대해 정리해보겠다. JAVA의 상속을 공부할 때 'JAVA는 다중 상속을 지원하지 않는다.' 라고 배웠었다.그런데 이제 와서 다중 상속(구현)이 된다니 이게 무슨 소린가 싶었다. 🫠(정말 흥미로워..)차근차근 알아보도록 하자.1. 다이아몬드 문제자바에서 `extends` 대상은 단 하나로 제한된다. 즉, 자식은 하나의 부모만 선택할 수 있다.아래 그림과 같은 경우는 금지된다.위 그림과 같이 Child가 다중 상속을 사용한다고하자. 또한 부모 클래스 모두 순수 추상 클래스가 아니라고 가정한다.Child는 부모로부터 sing()이라는 기능을 호출..

TIL/JAVA 2024.10.30

[TIL] static 메서드에서 인스턴스 기능을 사용할 수 없는 이유

강의에서 정적 메서드가 인스턴스의 기능을 사용할 수 없는 이유를 다음과 같이 설명했다.'인스턴스의 기능을 사용하려면 참조값을 알아야한다. 하지만 정적 메서드는 참조값 없이 호출되기 때문에 인스턴스의 기능을 사용할 수 없다.' 음... 두 번째 줄이 어딘가 잘 이해가 가지 않았다.🤔  강의도 반복해서 듣고, 여기저기 검색해본 뒤 나름의 결론을 아래에 다시 정리해보았다.🟡 일반적으로 static메서드에서는 인스턴스 메서드와 인스턴스 변수를 사용할 수 없다.이유는 static 메서드와 인스턴스의 '생성 시점'이 다르기 때문이다.static 메서드/변수JVM이 .class 파일을 메모리에 올릴 때 생성. 즉, 프로그램 실행 시 메서드 영역에 생성된다.인스턴스 메서드/변수`new` 연산자로 생성자를 호출했을 ..

TIL/JAVA 2024.10.29