자바란? - 자바 표준 스펙 자바 컴파일러 자바 실행 라이브러리 자바 가상 머신(JVM) - 구현(실체화) 오라클 Open JDK, Adoptium Eclipse Temurin, Amazon Corretto(AWS에 최적화)에서 자바 표준 스펙을 갖고 각 회사들의 스
1. 조건문 1) if문 if ~ else if ~ else if (조건문 = true일 경우) { // 참인 경우만 실행된다. } else { // 만족하는 조건이 없을 때 실행된다. } 2) if문과 else if문 연관된 조건 if (조건문) { } e
변수의 접근 가능한 범위이다. 블록의 내부에서 외부는 접근이 가능하다.지역 변수는 특정 지역에서만 사용할 수 있는 변수라는 뜻이다. 코드 블록이 끝나면 제거가 된다.비효율적인 메모리 사용if코드 블록에서 사용되는 코드가 main()코드 블록이 종료될 때 까지 메모리에
1. 클래스가 필요한 이유 학생이 늘어날 때 마다 변수를 추가해야 하는 단점이 있다. 문제 : 이전 문제에 배열을 사용해야 한다. 배열을 사용해보자 배열을 통해 원하는 값만 넣어서 사용 가능하다. 데이터를 변경할 때 조심해서 제거해야 한다. 3개 배열의 인덱스
1. 숫자와 문자열 입력 import java.util.Scanner; 를 추가해준다. Scanner 객체명(stdIn) = new Scanner(System.in); System.in 키보드에서 사용자로부터 키 입력을 받기 위해서 사용한다. Scanner의 인스턴
자료구조 ? 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 기본적이고 간단한 자료구조배열 선언 : 배열 변수 이름인덱스int\[] a;a = new int5; // new를 사용하여 배열 본체를 생성하고, 배열 변수 a와 연결한다.1) int\[] a =
1. Scanner 클래스 System.out을 통하여 출력 System.in을 통해서 사용자의 입력을 받을 수 있다. 변수 명을 한방에 바꾸는 단축키 : shift + f6 자료구조 책에서도 scanner를 배웠는데 강의에서도 scanner를 다루고 있다. 문제
생각보다 길었던 배열을 끝내고 드디어 마지막 과정인 메서드로 넘어왔다. 비슷한 코드들이 여러 군데에서 쓰이기 때문에 같은 코드를 여러번 반복해서 작성하는 번거로움을 지우기 위해 함수 = 메서드 함수를 만들고 (정의), 필요한 입력 값을 넣어서 해당 함수를 호출한다
클래스는 여러 함수와 변수를 한 번에 묶어서 관리하기 위해 사용된다.이름, 나이, 성적을 따로 나누어 관리하면 관리하기 좋은 방식이 아니다. -> 하나로 묶어주어야 한다. 객체를 생성클래스를 사용해서 학생이라는 개념을 만들고, 학생 별로 본인의 이름, 나이, 성적을 관
배열 도입 각각의 학생 별로 객체를 생성하고, 해당 객체에 학생의 데이터를 관리하면 된다. - 배열에 들어있는 객체 사용 - 배열 리팩토링 배열 선언 최적화 생성과 선언을 동시에 하는 경우 class1[] students = {student1, student2
1. 절차 지향 프로그래밍 - 절차 지향 프로그래밍 실행 순서를 중요하게 생각하는 방식이다. 데이터를 묶음 - 절차 지향 프로그래밍 메서드 추출 코드의 중복을 피하기 위해 메서드를 사용하여 각각의 기능을 구분하기 메서드를 통해 각각의 기능을 모듈화하고, 여러번 호
생성자 객체를 생성하는 시점에 어떤 작업을 하고 싶다면 생성자를 이용하면 된다. this 멤버 변수와 메서드의 매개변수의 이름이 같으면 어떻게 구분해야 할까? 멤버 변수보다 매개변수가 코드 블럭의 더 안쪽에 있기 때문에 매개변수가 우선순위를 가진다. 멤버 변수에
패키지 기능이 추가되어 프로그램이 아주 커지게 된다면?
접근 제어자 자바는 public, private같은 접근 제어자를 제공한다. 접근 제어자를 통해 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. private int volume; private를 사용하면 volume필드를 Speak
클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다.실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때 마다 하나씩 쌓인다.객체(인스턴스)가 생성되는 영역이다. new 명령어를 사용하면 이 영역을 사용한다. 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이다.
이름 그대로 끝 이라는 뜻이다. 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다.class, method를 포함한 여러 곳에 붙을 수 있다. 지역 변수에 설정할 경우 최초 한번만 할당이 가능하다. 이후 변수 값을 변경하면 컴파일 오류가 발생한다.final
"다양한 형태", "여러 형태"를 뜻한다.한 객체가 여러 타입의 객체로 취급될 수 있는 능력이다. 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다는 뜻이다.부모 타입의 변수가 자식 인스턴스를 참조한다.Child 인스턴스를 만들었다. 자식 타입인 Child
코드의 중복 제거 시도 Dog, Cat, Caw의 타입이 서로 다르기 때문에 불가능하다.문제의 핵심은 타입이 다르다는 점이다. 다형적 참조와 메서드 오버라이딩을 통해 Dog, Cat, Caw가 모두 같은 타입을 사용하고, 자신의 메서드도 호출할 수 있다.Animal(동
새로운 동물이 추가 되었을 때 변하는 부분을 최소화 하는 것이 잘 작성된 코드이다.코드에서 변하는 부분과 변하지 않는 부분을 명확하게 구분하는 것이 좋다.변경 범위가 많을 경우 코드가 지저분 해진다.남은 문제 Animal 클래스를 생성할 수 있는 문제개, 고양이, 소가
자바가 다중 상속을 지원하지 않는 이유자바는 다중 상속을 지원하지 않는다. 그래서 extends 대상은 하나만 선택할 수 있다. 부모를 하나만 선택할 수 있다는 뜻이다. 부모가 또 부모를 가지는 것은 괜찮다.어떤 부모의 move()를 사용해야 할지 애매한 문제가 발생
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체 들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다. (협력)객체 지향 프로그래밍은 프로그램을 유연하고 변
예외처리 비정상 종료를 막는다. 버그에 대한 Log를 남기고 분석 -> 버그를 수정한다. print(), printf(), println() 메소드에 자체적으로 예외처리를 해주었기 때문에 상관 없지만, 위의 3개를 제외하고 출력을 담당하는 다른 메소드를 사용하면 오류
문자열을 "포맷팅"하기 위해서 사용되는 함수이다.지정된 형식 문자열과 그에 따른 인수들을 입력받아, 지정된 형식으로 포맷팅된 문자열을 반환한다.문자열 리스트를 결합하는데 사용되는 함수이다.입력받은 문자열 리스트를 결합한 결과를 반환한다.toString() vs valu
상속관계 객체지향 프로그래밍의 핵심 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해준다. 기존 클래스의 속성과 기능을 그대로 물려받는 것이다. 상속을 사용하려면 extends 키워드를 사용하면 된다. 대상은 하나만 선택할 수 있다.
예외 프로그램을 작성하는 과정하는 과정에서 실수를 하거나 사용자가 잘못된 값을 입력하면 오류가 발생할 수 있다. 예외라고 한다. 예외 처리 연산 오류, 숫자 포맷 오류 등과 같이 상황에 따라 개발자가 해결할 수 있는 오류를 말한다. 오류 자체를 수정할 수 있다는 것이