본문 바로가기

주제별로 살펴보기47

매개변수와 전달인자 | 토막글 매개변수 Parameter 메서드의 정의 부분에 나열되어 있는 변수 전달인자 Argument 메서드를 호출할 때 전달하는 실제 값 2023. 11. 23.
객체지향의 의미 | 토막글 객체지향의 핵심은 "메시징" 훌륭하고 성장 가능한 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떠한가보다도, 모듈이 어떻게 커뮤니케이션하는가에 달려있다. - Alan Curtis Kay 어떤 객체가 다른 객체의 메서드를 호출하는 것이 메시징이라고 한다. 즉, 객체 지향 프로그래밍을 한다는 것은 메소드가 언제, 어떻게 호출되어야 하고 이름을 어떻게 지어야 하는지 고민하는 것이다. 객체는 자율적인 책임을 가진다. 자율적인 객체란 스스로 정한 원칙에 따라 판단하고 스스로의 의지를 기반으로 행동하는 객체다. 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. 자율적인 책임의 특징은 객체가 어떻게 해야하는가가.. 2023. 11. 23.
자바에서의 객체 관리 1: 인자 전달 데이터를 주고받는 데에는 값으로 전달(Call by value), 포인터로 전달(Call by pointer), reference로 전달(Call by reference)이 존재한다. C 언어에서는 값으로 전달하거나 포인터로 주고받는 방식을 구현할 수 있다. 또한 C++에서는(추가로) 참조 자료형을 int&, double&과 같이 기본 자료형에 &를 붙여서 참조 자료형으로 사용할 수도 있다. 자바에서는 모든 것이 객체이므로(객체 지향 언어는 객체간의 상호작용을 중시한다.) 이 객체를 모조리 복사해서 전달하는 것은 비효율적이다. 따라서 기본적으로 메서드에 인자를 전달하거나 리턴 값을 받을 때에 대부분 reference로 전달하는 방식으로 인자가 전달된다. 자바에서 메서드를 호출할 때 매개변수로 지정한 값을.. 2023. 11. 22.
반복문의 라벨 for 문에 라벨링을하여 다중 반복문을 조절할 수 있다. Example 1 public class LabelExam { public static void main(String[] args) { outter: for(int i = 0; i < 3; i ++) { for(int k = 0; k < 3; k++) { if(i == 0 && k == 2) continue break; System.out.println(i+", "+k); } } } Example 2 public class LabelExam { public static void main(String[] args) { outter: for(int i = 0; i < 3; i ++) { for(int k = 0; k < 3; k++) { if(i ==.. 2023. 11. 22.
Java의 Switch: 14 이후 추가된 기능 들어가기 전에 JDK 14에 들어서면서 Switch Expression이라는 표현이 추가되었다. Switch Statement는 전통적인 switch 구문으로, 여러가지 경우를 검사하고 지시를 수행하는 동작을 수행한다. 값을 반환하지 않고 주로 프로그램의 흐름을 제어한다. 반면 14에서 추가된 switch expression은 각 case 값을 반환하며, 이 값을 변수에 할당할 수 있다: Expression과 statement의 차이점은 다른 문서에서 살펴보자. 1. Arrow Labels 원래 java의 switch는 case문의 종료를 break를 통해서 진행했어야 했다: switch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println.. 2023. 11. 22.
Java의 char char 2바이트 자료형(0000~0FFF, 16 진수, 양수만 표현한다.)으로, 유니코드 문자의 일련 번호를 저장한다. "A" = 65 "a" = 97 https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_0000~0FFF 2023. 11. 21.