전체 글
IT에 관심있는 사람들을 위한 블로그Java - 객체지향언어 퀴즈
▶현재 시간 : 2022년 10월 25일 18:13 p.m. omg. 퀴즈 너무 어렵네. 내 생각엔.. 최소 3번 이상 따라해 보면서 해야지 이해 할듯.. ▶퀴즈: 객체지향요구사항 사람은 자식, 부모님, 조부모님이 있다. 모든 사람은 이름, 나이, 현재 장소정보(x,y좌표)가 있다. 모든 사람은 걸을 수 있다. 장소(x, y좌표)로 이동한다. 자식과 부모님은 뛸 수 있다. 장소(x, y좌표)로 이동한다. 조부모님의 기본속도는 1이다. 부모의 기본속도는 3, 자식의 기본속도는 5이다. 뛸때는 속도가 기본속도대비 +2 빠르다. 수영할때는 속도가 기본속도대비 +1 빠르다. 자식만 수영을 할 수 있다. 장소(x, y좌표)로 이동한다. 위 요구사항을 만족하는 클래스들을 바탕으로, Main 함수를 다음 동작을 출력..
Java - 객체지향언어 (인터페이스)
▶현재 시간 : 2022년 10월 25일 14:42 p.m. 인터페이스...너도 어렵구나.. 이것만 넘으면 좀 쉬워진다고 누가 말했다.. 화이팅.. ▶인터페이스(Interface) 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것입니다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않습니다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다. 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종..
Java - 객체지향언어 (추상클래스)
▶현재 시간: 2022년 10월 25일 14:07 p.m. 추상클래스..너 너무 어렵다.. ▶추상메소드(abstract method) 추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다. 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워지기 때문입니다. 이러한 추상 메소드는 선언부만이 존재하며, 구현부는 작성되어 있지 않습니다. 바로 이 작성..
Java - 객체지향언어 (접근 제어자)
▶현재 시간 : 2022년 10월 25일 1:06 a.m. 오늘 요가 안가고 코딩 공부한다. 변한 내 자신. 기특하구만. ▶접근 제어자 (access modifier) 접근 제어자는 멤버 변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할을 합니다. → private : 같은 클래스 내에서만 접근이 가능합니다 → default(nothing) : 같은 패키지 내에서만 접근이 가능합니다. → protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능합니다. → public : 모든 접근 가능합니다. ▶접근 제어자를 사용하는 이유 - 객체지향 프로그래밍이란 객체들 간의 상호작용을 코드로 표현하는 것입니다. 이때 객체들간의 관계에 따라서 접근 할 수 있는 것과 아..
Java - 오버로딩 vs 오버라이딩
▶오버로딩이란? → 한 클래스 내에 동일한 이름의 메소드를 여러개 정의하는 것 👉 동일한 이름의 메소드를 정의한다고 해서 무조건 오버로딩인 것은 아닙니다! 오버로딩의 조건 → 메소드 이름이 같아야 합니다. → 매개변수의 개수 혹은 타입이 달라야 합니다. 오버로딩 예제 int add(int x, int y, int z) { int result = x + y + z; return result; } long add(int a, int b, long c) { long result = a + b + c; return result; } int add(int a, int b) { int result = a + b; return result; } // 오버로딩의 조건에 부합하는 예제입니다. 오버로딩 아닌 예제 int ..
Java - 객체지향언어 (상속)
▶현재 시간 : 2022년 10월 25일 12:00a.m. 상속파트는 조금 쉽다. ㅎ ▶상속(inheritance) 상속이란 기존의 클래스를 재사용하는 방식 중의 하나입니다.한 번 작성한 코드가 재사용이 필요하다면, 변경사항만 코드로 작성하므로 상대적으로 적은 양의 코드를 작성할 수 있게 됩니다. 이렇게 코드를 재사용하면, 코드와 클래스가 많아질수록 관리가 용이하다는 장점이 있습니다. 상속을 통해 클래스간의 계층구조를 만들게 됩니다. 상속의 특징 부모 클래스로에서 정의된 필드와 메소드를 물려 받습니다. 새로운 필드와 메소드를 추가할 수 있습니다. 부모 클래스스에서 물려받은 메소드를 수정할 수 있습니다. class Animal{} class Dog extends Animal{} class Cat exten..
Java - 객체지향언어(생성자)
▶현재 시간 : 2022년 10월 25일 11:42 a.m. 즐거운 화요일이다.! 모두들 화이팅~ ▶객체지향언어 생성자 ▶생성자(constructor) 생성자는 인스턴스가 생성될 때 사용되는 '인스턴스 초기화 메소드'입니다. 즉 new 와 같은 키워드로 해당 클래스의 인스턴스가 새로 생성될 때, 자동으로 호출되는 메소드입니다. 이 생성자를 이용해서 인스턴스가 생성될 때 수행할 동작을 코드로 짤 수 있는데요. 대표적으로 인스턴스 변수를 초기화 하는 용도로 사용합니다. 클래스이름 (타입 변수명, 타입 변수명, ...){ 인스턴스 생성 될 때에 수행하여할 코드 변수의 초기화 코드 } 생성자에게도 생성자만의 조건이 있기 때문에 이 부분을 따라줘야합니다! 생성자의 이름은 클래스명과 같아야 한다. 생성자는 리턴 값..
Java - 객체지향언어(클래스, 인스턴스, 메소드)
▶현재 시간: 2022년 10월 25일 1:16 a.m. 아까 짬뽕을 먹었더니 배가 불러서 잠이 안오네..ㅎ 그럼 코딩 정리 하면서 소화 시키는 거지지~~ ▶객체지향언어 클래스, 인스턴스, 메소드 ▶클래스(Class)란? 클래스는 표현하고자 하는 대상의 공통 속성을 한 군데에 정의해 놓은 것이라고 할 수 있습니다. 즉, 클래스는 객체의 속성을 정의해 놓은 것이죠. 또한 클래스 내부의 정보를 멤버 변수라라고 합니다. 여기 붕어빵 틀이 있습니다! 붕어빵 틀은 붕어빵을 만드는데 이용이 되죠. 클래스랑 인스턴스도 이와 마찬가지로 생각하시면 됩니다. 붕어빵을 만드는 틀이 곧 클래스가 되며 붕어빵 틀로부터 만들어진 붕어빵이 곧 인스턴스가 되는 것입니다! ▶인스턴스(Instance)란? 어떠한 클래스로부터 만들어진 ..
Java - 반복문
▶현재 시간 : 2022년 10월 24일 12:44 a.m. 반복문 공부 시작! ▶반복문 현재 100명의 학생들 점수의 평균을 구해야 하는 상황에 쳐해있습니다! 100명의 학생의 점수를 일일히 더해서 평균을 낼 경우 더하는 연산과정을 하나하나 하기에는 너무나 오래걸립니다. 그렇다면 이렇게 단순, 반복의 과정을 간단하게 할 수는 없을까요? 그 방법이 바로 반복문입니다! 반복문에는 대표적으로 for 문과 while 문 그리고 do ~ while 문이 있습니다. 하나씩 살펴보도록 하죠. for문 for문의 형식은 다음과 같습니다. 초기값이 조건식에 위배되지 않을 경우 실행 코드를 한 바퀴 돌게 됩니다. 이후 증감식을 통해 얻어진 값으로 다시 한번 조건식에 위배되는지 확인합니다. 만약 위배되지 않을 경우 이전 ..