학습 목표컴퓨터 프로그래밍 언어의 하나인 자바(Java)의 특징과 활용에 대해 알아봅니다.핵심 단어컴퓨터 프로그래밍 언어자바‘Write once, Run Anywhere’ : 자바가 설치된 컴퓨터라면 어디서든 실행이 가능하다는 특징기업용 시장에서 널리 쓰이고 있음안드로
✍️ 그림으로 배우는 자바, 파트1:입문!메소드 : 특정 기능을 제공하는 코드. 일단, 소괄호가 열리고 닫히면 메소드라고 생각한다.클래스 : 자바 프로그램의 최소 단위. 자바 프로그램은 적어도 하나의 클래스를 가진다.메인 메소드 : 프로그램 실행의 시작점. 메인 메소드
변수 (variable) : 변하는 수로서, 이름 붙여진 메모리 공간이다.타입 (type) : 변수의 형태, int (정수형), double (실수형), string (문자열), boolean (논리형) 등이 있다. 타입은 크게 기본형과 레퍼런스형이 있다. 연산자
나눗셈 연산 주의 : int와 int의 연산 결과는 int가 된다. (double 타입에 대입이 되어도 정수로 연산되어 정수로 값이 반환된 다음 실수로 바뀐다)double과 int 의 연산은 double이다.숫자 타입 사이에서는 캐스팅이 가능하며, 숫자간 연산은 더 큰
일련의 코드 단순화하는 방법 / 입력값에 대응하는 반환값이 있다다른 프로그래밍 언어에는 함수라는 것이 별도로 존재하지만, 자바에서는 클래스를 떠나 존재하는 것은 있을 수 없기 때문에 자바의 함수는 따로 존재하지 않고 클래스 내에 존재한다. 자바는 이러한 클래스 내의
상황에 따라 실행 흐름을 달리하는 문법. 3가지 이상의 흐름을 나눌 때✋ if문 안에 String result 변수를 생성하니까 작동하지 않음비교 연산자 : 좌우 값의 크기를 비교하여 참/거짓을 반환한다.논리 연산자 : 좌우 논리값을 통해 새로운 논리값을 반환
규칙적 반복 코드를 단순화하는 문법while 문 : 반복 횟수가 상황따라 다른 경우에 사용for 문 : 반복 횟수가 명확할 때for 문 구조띄어쓰기로 결과 출력하기구구단 출력하기
👉 특징 : 배열은 인덱스(index)라는 순서를 가지며, 모든 값의 타입이 같다.👉 장점 : 수많은 데이터를 하나의 변수로 관리할 수 있음배열을 순회할 때 활용할 수 있다.
👉프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다.객체 지향의 가장 큰 특징⭐️재활용성⭐️문법 : 객체지향을 편하게 할 수 있도록 언어가 제공하는 기능을 익히는 것이다. 이 문법을 이해하고, 숙지해야 객체를 만들
클래스 (class): 설계도, 메소드의 정의 인스턴스 (instance): 제품, 메소드 호출리팩토링 : 같은 역할을 하지만 코드를 효율적으로 만드는 행위메소드 사용의 장점 : 다른 곳에서 쓸 수 있다.가독성이 향상된다. : 어떻게 동작하는 코드인지 알 수 있기 때문
프로그램이 커지면 여러가지 이유로 이름이 충돌하게 된다. 이를 해결하기 위해 고안된 것이 유효범위이다. 예제) 변수 선언의 다양한 상황에 따라 출력값을 확인하자.우선 메소드만 놓고 봤을 때 메소드 안에서 선언한 변수는 그 메소드가 실행될 때 만들어지고, 그 메소드가 종
클래스와 같은 이름의 메소드를 생성자라고 한다.생성자는 객체 (인스턴스)를 생성할 때 실행이 된다. 가장 먼저 실행되어 초기화 작업을 해준다.생성자가 없으면 자바에서 자동으로 디폴트 생성자를 만들어 준다. 사실은 Calculator c1 = new Calculator(
객체에 메소드를 추가하기 어려운 경우가 있다.객체를 자신이 만들지 않았다. 그래서 소스를 변경할 수 없다. 변경할 수 있다고 해도 원 소스를 업데이트 하면 메소드 substract이 사라진다. 이러한 문제가 일어나지 않게 하기 위해서는 지속적으로 코드를 관리해야 한다
클래스 패스 클래스가 위치하는 경로를 지정해서 자바가 필요로 하는 클래스를 로드할 수 있는 방법. terminal 이용하여 class 파일 확인하기 1. ClassPathDemo 폴더안에 ClassPath 라는 java 파일을 만들어준다. 2. terminal
패키지는 하나의 클래스 안에서 같은 이름의 클래스들을 사용하기 위한 방법. 클래스가 많아짐에 따라 같은 이름을 가진 클래스가 생겨날 가능성이 높아지게 되는데 이름의 충돌을 방지하기 위해 고안된 것이 패키지라고 할 수 있다.정보 공학에서는 ‘이름의 충돌'이라는 문제를 해
아래의 코드는 화면에 1을 출력하는 코드이다.System : class의 이름의 첫 문자는 대문자라는 것을 감안하면 이는 클래스 이름일 것이다.println : 메소드일 것이다.out : class의 변수일 것이며 인스턴스화 시키지 않고 사용하고 있으므로 static일
자유와 규제규제 : 추상 클래스, final, 접근 제어자, 인터페이스와 같은 규칙을 통해 체계적인 프로그래밍을 할 수 있다.키워드 private으로 시작되는 메소드는 클래스 밖에서는 접근할 수 없다. 이 private 의 자리에 오는 것들을 접근 제어자 (access
abstract 클래스나 abstract 메소드는 바로 사용할 수 없으며 사용하기 위해서는 반드시 상속을 사용하도록 강제한다. 추상클래스를 인스턴스화할 수 없으며, 상속을 하고 상속한 클래스를 사용해야 한다.추상메소드는 시그니처만 가지고 본체가 없다. (중괄호 안의 내
추상 (abstract)이 상속을 강제하는 것이라고 하면 final은 상속/변경을 금지하는 규제이다.이전에 PI 값을 지정할 때 다른 클래스에서 값을 수정할 수 있었는데, 이를 규제하기 위해 final이라는 키워드를 쓸 수 있다. final로 지정을 하면 다른 메소드나
어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다. 만약 인터페이스에서 강제하고 있는 메소드를 구현하지 않으면 이 애플리케이션은 컴파일조차 되지 않는다.interface I : 인터페이스를 선언할 때는 이
다형성 (polymorphism) 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미한다. 같은 이름의 메소드지만 매개변수에 따라서 다른 방식으로 실행이 되므로 오버로딩은 메소드의 다형성 중 하나이다.클래스 B는 클래스 A를 상속하고 있다.
예외 (exception)란, 프로그램을 만든 프로그래머가 상정한 정상적인 처리에서 벗어나는 경우에 이를 처리하기 위한 방법이다. 나누기에서 0으로 나누려고 하면 Exception \*\*in\*\* thread "main" java.lang.ArithmeticExce
이클립스에서 키워드 더블클릭 - 콘솔창 옆에 뜨는 Javadoc을 확인하면 자바문서를 바로 확인할 수 있다. 그 중 Throws라는 항목이 있다. 이는 반드시 처리가 필요한 예외를 보여준다. (java에서도 API를 만들면서 예외를 던진 것이다)FileReader 메소
우리가 만든 예외를 사용자에게 던지는 방법원하는 지점에 예외상황을 만들어서 오류를 만들어 낼 수 있다.throw는 예외를 발생시키는 명령어이다. throw 뒤에는 예외 정보를 가지고 있는 예외 클래스가 위치한다. 위의 메소드를 사용하는 메소드에서 try-catch를 이
object 모든 클래스의 공통된 조상. 구체적인 클래스가 있음.클래스 생성 시, 다른 클래스를 상속받고 있지 않다면 extends Object가 생략되어 있는 것이다. Object가 가지고 있는 메소드를 이용해서 공통적인 기능을 가질 수 있다.Object method
interface에서 field를 만들면 public static final이 암시가 된다.enum은 열거형 (enumerated type)이라고 부른다. 열거형은 서로 연관된 상수들의 집합이라고 할 수 있다.코드가 단순해진다.인스턴스 생성과 상속을 방지한다.키워드 e
referencenew를 통해 데이터 타입을 생성하는 것은 기본 테이터 타입이 아니라 참조형 데이터 타입 (참조 자료형, 참조 데이터형)이다.변수가 인스턴스를 가지고 있는 것이 아니라 인스턴스가 저장되어 있는 참조값만을 가지고 있다.바로가기와 비슷한 방식이다. 아무리
프로세스 : 실행 중인 프로그램, 자원 (resource)과 쓰레드로 구성쓰레드 : 프로세스 내에서 실제 작업을 수행모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다.프로세스 : 쓰레드 = 공장 : 일꾼싱글 쓰레드 프로세스 = 자원 + 쓰레드멀티 쓰레드 프로세스
서로 관련된 쓰레드를 그룹으로 묶어서 다루기 위한 것모든 쓰레드는 반드시 하나의 쓰레드 그룹에 포함되어 있어야 한다.쓰레드 그룹을 지정하지 않고 생성한 쓰레드는 ‘main 쓰레드 그룹’에 속한다.자신을 생성한 쓰레드 (부모 쓰레드)의 그룹과 우선순위를 상속받는다.일반
💡 함수형 인터페이스(Functional interface)람다식을 다루기 위한 인터페이스. 오직 하나의 추상 메서드만 정의되어 있다.대부분의 메서드는 타입이 비슷하다. 그래서 java.util.function 패키지에 일반적으로 자주 쓰이는 형식의 메서드를 함수형
다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것Collection이나 배열을 다루기 위해 Collection이나 Iterator 같은 인터페이스를 이용했으나, 통일되지 않고 너무 길다는 문제점이 있었다.JDK 1.8 이후에 stream으로 통일되었다.데이터 소스
👉 예시👉 예시Comparator를 주지 않으면 기본 정렬 (Comparable)로 정렬문자열스트림 정렬 방법Comparator의 comparing()으로 정렬 기준을 제공Comparator인터페이스의 static 메서드인 comparing()을 이용하여 정렬기준을
✅ 열거형 : 서로 관련된 상수를 편리하게 선언하기 위한 것자바의 열거형은 '타입에 안전한 열거형 (typesafe enum)'이라 실제 값이 같아도 타입이 다르면 컴파일 에러가 발생한다.👉 예시열거형 상수간의 비교에는 == 를 사용할 수 있다. equals()보다