전체 글 93

이것이 자바다 - 클래스(2)

리턴 타입 - 리턴 타입은 메소드가 실행한 후 호출한 곳으로 전달하는 결과값의 타입을 말한다.- 리턴값이 없는 메소드는 void로 작성한다.- 리턴 타입이 있는 메소드는 실행 블록 안에서 return 문으로 리턴값을 반드시 지정해야 한다. 매개변수- 매개변수는 메소드를 호출할 때 전달한 매개값을 받기 위해 사용된다.- 전달할 매개값이 없다면 매개변수는 생략할 수 있다. 메소드 호출메소드를 호출한다는 것은 메소드 블록을 실행하는 것을 말한다. 클래스에서 메소드를 선언했다고 바로 호출할 수 있는것은 아니다.메소드는 객체의 동작이므로 객체가 존재하니 않으면 메소드를 호출할 수 없다.클래스로부터 객체가 생성된 후에 메소드는 생성자와 다른 메소드 내부에서 호출될 수 있고, 객체 외부에서도 호출이 가능하다. 가변길..

Java 2024.06.21

이것이 자바다 - 클래스

클래스부분 복습내용객체란?- 객체는 속성과 동적으로 구성된다. 속성(필드), 동작(메서드)ex) 사람은 이름, 나이의 속성 / 걷다, 웃다의 동작 객체 간의 관계- 객체는 단독으로 존재할 수 있지만, 대부분 다른 객체와 관계를 맺고있다.- 집합 관계, 사용 관계, 상속 관계가 있다.(김영한 강의에서 배웠던 클라이언트, 인터페이스, 구현체등을 생각해보자  캡슐화객체의 데이터, 동작을 하나로 묶고 실제 구현내용을 외부에 감추는것외부의 잘못된 사용으로 객체가 손상되지 않기 하게 위해 사용하는 것  클래스의 두가지 용도- 라이브러리 (Library) 클래스 : 실행할 수 없으며 다른 클래스에서 사용하는 클래스- 실행 클래스 : main( ) 메서드를 가지고 있는 실행 가능한 클래스(Student 실행 클래스는 ..

Java 2024.06.19

이것이 자바다 - 열거(Enum) 타입

데이터중 한정된 값을 갖는 경우가 있다. (월화수목금토일 혹은 봄, 여름, 가을, 겨울처럼)이와같이 한정된 값을 갖늩 타입을 열거 타입이라고 한다. package ch05.sec12;import java.util.Calendar;public class WeekEx { public static void main(String[] args) { // Week 열거타입 변수선언 Week today = null; // Calendar 얻기 Calendar cal = Calendar.getInstance(); // 컴퓨터 날짜 및 시간 정보를 가진 Calender 객체 얻고 참조값 cal에 대입 int week = cal.get(Calendar.D..

Java 2024.06.17

이것이자바다 - 배열

배열- 배열은 같은 타입의 값만 관리한다.- 배열의 길이는 늘리거나 줄일 수 없다.- 타입 [ ] 변수 형태로 선언하는게 관례이다.ex) Int[ ] intArray; 배열은 참조 변수이다. 배열도 객체이므로 힙 영역에 생성된다. 배열 변수는 힙 영역의 배열 참조 주소를 저장한다.참조할 배열이 없다면 null로 초기화할 수 있다. (Null이기 때문에 null인 값을 참조하면 npe가 발생한다) 값 목록으로 배열 생성타입[] 변수 = {1, 2, 3, 4, 5} 형식으로 간단하게 배열을 생성할 수 있다.중괄호는 나열된 값들을 항목으로 가지는 배열을 힙에 생성하고 주소를 리턴한다. 배열 변수를 미리 선언한 후에는 값 목록을 변수에 대입할 수 없다. 타입[] 변수;변수 = { 값0, 값1, 값2, 값3, …..

Java 2024.06.15

다형성(3) - OCP

객체지향의 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만든다.- 레고 블럭 조립하듯- 키보드 마우스 갈아 끼우듯- 컴퓨터 부품 갈아 끼우듯- 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법  운전자(클라이언트), 자동차 역할(인터페이스) K3, 아반떼, 모델3 (구현체) 운전자는 자동차의 역할만 알면 된다. k3를 운전하다 아반떼를 운전한다고 운전을 못하게 되는건 아니다. 로미오 역할 (인터페이스)는 대본만 있다면 장동건이 하던, 원빈이 하던 아무 상관이 없다. 내가 들어가도 문제가 없다.(?) 줄리엣 역할도 마찬가지로 김태희가 하지 않는다고 해서 줄리엣 역할이 변하게 되는건 아니란 것이다. 역할과 구현을 분리하자역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다.- ..

Java 2024.06.13

다형성 (2) - 추상클래스, 인터페이스

다형성 활용이전 파트에서 이해하지 못했던 다형적 참조를 어떤경우에 사용하는지 알 수 있다.동물의 울음소리 문제로, 다형성을 사용하지 않은 코드이다.package poly.ex1;public class AnimalSoundMain { public static void main(String[] args) { Dog dog = new Dog(); Cat cat = new Cat(); Cow cow = new Cow(); System.out.println("동물 소리 테스트 시작"); dog.sound(); System.out.println("동물 소리 테스트 종료"); System.out.println("동물 소리 테..

Java 2024.06.12

다형성 (캐스팅, 메서드 오버라이딩)

다형성이란?다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 보통 하나의 객체는 하나의 타입으로 고정되어 있는데,다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다. 다형적 참조 - 부모는 자식을 품을 수 있다. (자식 클래스를 참조할 수 있다.) package poly.basic;public class PolyMain { public static void main(String[] args) { //부모 변수가 부모 인스턴스 참조 System.out.println("Parent -> Parent"); Parent parent = new Parent(); parent.parentMethod(); // 자식 ..

Java 2024.06.10

상속

상속 관계상속은 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해준다.상속을 사용하려면 extends 키워드를 사용한다. extends는 하나의 대상만 선택할 수 있다. (다중상속 불가능) - 부모 클래스(슈퍼 클래스) : 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스- 자식 클래스(서브 클래스) : 부모 클래스로부터 필드와 메서드를 상속받는 클래스 상속과 메모리 구조Car 클래스를 상속받는 ElectricCar 자식 클래스가 있다고 가정해보자new ElectricCar( )를 호출하면 ElectricCar뿐만 아니라 부모 클래스인 Car 클래스까지 함께 인스턴스 생성한다.여기서 상속받는 메서드를 electricCar.method()를 호출하면, electricCar 클래..

Java 2024.06.07

final

finalfinal은 상수이다. 변수에 final이 붙으면 더는 값을 변경할 수 없다.class, method를 포함한 여러 곳에 붙일 수 있다. final을 지역변수에 설정할 경우 최초 한번만 할당이 가능하다. 이후에 변수 값을 변경하려고 하면 컴파일 에러가 발생한다.  final - 필드 (멤버 변수)public class ConstructInit { final int value; public ConstructInit(int value) { this.value = value; //final을 필드에서 사용하는 경우에 생성자를 만들어 사용할 수 있다. }} fianl을 필드에 사용할 경우 해당 필드는 생성자를 통해서 한번만 초기화 될 수 있다 package fi..

Java 2024.06.06

메모리 구조와 static

자바의 메모리 구조자바 메모리 구조는 3가지의 영역이 있다. - 메서드 영역 : 클래스 정보를 보관하는 영역. 프로그램의 모든 영역에서 공유한다.- 스택 영역 : 실제 프로그램이 실행되는 영역. 메서드를 실행할 때 마다 하나씩 쌓인다.- 힙 영역 :  객체(인스턴스)와 배열이 생성되는 영역. new 명령어를 사용하면 이 영역을 사용한다. (힙 영역에서 GC가 작동한다) 스택(Stack)과 큐(Que)- 스택 (후입선출, LIFO)  - 큐 (선입선출, FIFO) 이런 자료구조는 각자 필요한 영역이 있다. 선착순 이벤트를 하는 경우라면 큐 자료구조를 사용해야 한다. 스택 영역- 스택영역에 메서드 호출과 지역변수를 관리한다.- 메서드를 계속해서 호출하면 스택 프레임이 계속 쌓인다.- 지역변수 (매개변수 포함..

카테고리 없음 2024.06.05