특징객체지향 프로그래밍범용적인 언어플랫폼에 독립적이다. ( 특정 프로그램에서 동작되는 리눅스와 달리, JAVA는 JVM 프로그램이 있으면 사용할 수 있다. )JVM: 자바로 만들어진 프로그램을 실행시켜주는 프로그램 (개발시 필요)Garbage Collector로 사용
컴파일러(Compiler) 컴파일러(Compiler) : 작성한 코드를 실행가능한 파일로 변환하는 프로그램. 컴파일하는 과정에서 파일에 오류가 있으면 컴파일 에러가 발생 주석과 컴파일 컴파일러는 주석을 무시, 설명을 위해 주석을 사용하기도 함. 주석: //, /**
변수 : 값(Value)을 저장할 수 있는 공간 반영언어 : 변수의 값이 컴파일시 결정되는 언어 변수 설정시 어떤 데이터를 저장할 지 결정 타입은 정해져 있다 totalCount 처럼 두단어를 합쳐
String firstName ="John"; String lastName ="Smith"; Syste,.out.println(firstName+ " " + lastName); String firstName ="John"; String lastName ="S
캐스팅이란?다른 데이터 유형에 한 데이터 유형 값을 할당1) 묵시적 형 변환 Widening Casting(자동) : 작은 타입에서 큰 타입으로 변환byte -> short -> char-> int ->long-> float->double2) 명시적 형 변환 Narro
Math 수학 관련 method를 제공하는 classMethodsMath.max(x,y) : x,y중 최댓값을 반환Math.min(x,y) : x,y중 최솟값을 반환Math.sqrt(x) : x의 루트(root)를 씌운 값 반환Math.abs(x) : x의 절댓값 반환
불린(boolean)데이터를 이분화하여 반환on/off, 0/1, True/False참고https://www.w3schools.com/java/java_booleans.asp
장점 : if 조건문에 비해 많은 statement를 작성할 수 있다. 장점 : 시간절약, 오류감소outer Loop 안에 inner Loopinner Loop가 outer Loop 횟수만큼 반복출력값배열 (array) 의 요소(element) 를 추출하는데 사용.예시
배열(Array) 배열에는 여러 값이 저장됨 대괄호([])를 통해 정의 중괄호 ({})에 값 입력 배열 요소 변경 배열 길이
호출시에만 실행특정 작업 수행시 사용되는 함수 코드를 재사용하기 위해 사용Method는 class 안에 선언Java에서는 println()과 같은 고유 메소드를 제공void : 반환 값이 없음을 의미static : Main의 class함수이름();3-1) 매개변수(pa
OOP: 객체지향 프로그래밍 절차적 프로그래밍과 달리, 메소드를 포함하는 클래스와 같은 객체를 생성하는 프로그래밍장점 속도 빠름구조 명확유지보수, 디버그 용이재사용, 메모리 효율DRY(Don't Repeat Yourself) : 코드반복을 줄이고 재사용. 참고https
필드(field)라고도 불림dot(.)을 사용하여 클래스의 속성에 접근Object.x값 재수정을 금지하고 싶을 때, final 사용한 클래스에서 여러 객체를 만들었을 경우, 한 객체의 속성 값을 변경하였을 때, 다른 객체의 속성 값에 영향을 미치지 않도록 하기outpu
1) static : 클래스의 객체 생성 없이 접근2) public : 객체에만 접근1) Static (정적)프로그램 종료까지 메모리에 한번 할당메모리 영역에 존재하여 객체 생성 이전에 할당되어 있음따라서, 객체 생성 없이 static 자원에 접근할 수 있음상속 방지를
public과 유사. 1) Access Modifiers : 접근 수준을 통제2) Non Access Modifier : 접근 수준 통제 하지 않음, 다른 기능을 제공public : 다른 클래스로부터 접근가능한 클래스default : 같은 패키지 안의 클래스만 접근가능
사용자로부터 민감한 데이터를 숨김 조건 1) 클래스 변수 혹은 속성이 "private"로 선언2) private 변수에 접근하고 update하기 위한 공용 "get" 및 "set" 메소드를 제공해야 함.따라서, 데이터 보안을 강화하고 프로그래밍의 유연성을 높일 수 있다
논리 연산자 논리 합 || : 하나만 True -> Treu/ 둘다 False -> False 논리 곱 && : all True -> True / 나머지 False논리 부정 ! : 단항 연산자. 결과를 반대로 바꿈베타적 논리 합 ^ : 피연산자가 하나는 True, 하나
참조타입 기본형 타입을 제외한 모든 타입기본형 타입 : bool, char, byte, short, int, long, float, double참조형 타입 : array, class 참조형 변수 String class : new : 객체를 메모리에 올려줌. 인스턴스는
범위 Scope 변수의 스코프(scope) : 변수들은 사용할 수 있는 범위를 가짐. 변수의 스코프 = 변수가 선언된 블록 global scope vs local scope global scope : 만약 클래스의 속성으로 선언 되었을 경우, 사용 범위 클래스 전체
열거형 enum JD5에서 추가
생성자 new 다음에 생성자가 있어야 함모든 클래스는 인스턴스화 될 때 생성자를 사용특징1) 생성자는 리턴타입이 없다. 2) 기본 생성자 기본생성자 : 매개변수가 없는 생성자프로그래머가 생성자를 만들지 않을 경우, 컴퍼알 할 때, 기본 생성자가 자동으로 만들어진다. 프
데이터 타입선언 위치 메모리 저장방식에 따른 분류메모리에 값이 저장integer, float, double, boolean, char메모리에 데이터의 주소값 저장ArrayList, String클래스 내에 선언멤버 : 객체의 속성(멤버변수) + 객체의 기능(메소드) 클래
this인스턴스의 자기자신을 가리킴.필드의 변수명과 인스턴스의 변수명이 동일할 경우, 두 변수의 구분을 위해 사용.클래스 내의 메소드의 경우, this.메소드명()으로 호출가능참고https://school.programmers.co.kr/learn/course
메소드 오버로딩(Method overloading) 동일한 이름의 메소드에 다양한 유형과 갯수의 매개변수를 가질 수 있도록 하는 기술
생성자의 매개변수의 유형 및 갯수가 다르면 같은 이름의 생성자를 여러개 추가가능자신 호출 시 , ""기본생성자 호출시 name 을 no name, 숫자를 0으로 초기화 (parameter가 없을 때 defualt 설정)참고https://school.progra
패키지(package) 연관 있는 클래스 혹은 인터페이스들의 모음클래스를 계층적으로 표현다른 클래스 간의 충돌 방지 패키지 생성보통 도메인 이름을 거꾸로 적고, 뒤에 프로젝트 이름을 붙여 만듦숫자, 점은 폴더명이 첫글자가 될 수 없음도메인은 패키지 중복 방지를 위한 것
상속부모가 자식에게 물려주는 것is a, kind of 관계 버스(자식)는 차(부모)이다.상속 코드기본 문법 <자녀 클래스> extends <부모 클래스>부모 클래스에 메소드 추가자녀클래스에서 부모클래스에게 상속받은 메소드 사용자녀클래스에 메소드 추가 확장
접근제한자멤버가 클래스에 접근하는 것을 제한캡슐화 : 관련된 내용을 모아 가지는 것 (클래스는 서로 관련된 필드와 메소드로 이루어짐)클래스 중에는 외부에 노출하고 싶지 않은 내용들이 있음. 이때 , 접근제한자를 사용하여 관리. 접근제한자 종류1\. public 모두 접
추상클래스 구체적이지 않은 클래스 새, 포유류, 파충류모호한 클래스는 부모클래스가 가능하지만, 객체가 될 수 없다. 객체가 되려면 구체적이어야 함. 추상클래스 선언 abstract 키워드 미완성 추상 메소드 포함추상메소드 : 내용이 없는 메소드, 구현이되지 않은 메소드
class가 인스턴스화 될 때, 생성자가 실행되면서 객체의 초기화를 함. 이때 부모 객체를 먼저 초기화. 따라서, 생성자만 실행되지 않고, 부모 생성자 실행후 생성자 실행new 연산자로 객체를 생성할 경우, 객체가 메모리에 올라갈 째 부모 객체도 함께 메모리에 올라감생
오버라이딩부모가 가진 메소드와 같은 모양의 메소드를 자식이 가짐부모가 가진 기능이 필요하지만, 그대로 사용하지 않고 기능 추가 등 재정의하여 사용. Overriding 메소드 오버라이드 시, 항상 자식클래스 안에서 선언된 메소드가 호출됨오버라이딩해도 부모 메소드가 없어
클래스 형변환 부
인터페이스인터페이스 : 객체들의 상호 작용을위한 장치 시스템언더베이스 : 구현하지 않고 선언만 하는 기능정의 : 추상 메소드와 상수 컴파일 시 자동 변환인터페이스 메소드는 추상 메소드 컴파일 시 자동 변환참고https://school.programmers.co
인터페이스 선언 : interface 키워드인터페이스 구현 : implements 키워드 사용인터페이스가 지닌 메소드 중 하나라도 구현이 안 되어 있을 경우, 추상클래스가 됨 추상클래스는 인스턴스 생성 불가.참조변수 타입으로 인터페이스 생성참고https://s
기존에는 추상 메소드만 생성할 수 있었으나, 8부터 인터페이스에서 defualt 메소드와 static 메소드를 생성할 수 있다.인터페이스 변경시 인터페이스를 구현하고 있는 모든 클래스들이 해당 메소드를 구현해야 하는 문제를 해결하기 위함default 선언시 메소드 구현
내부 클래스 : 클래스 내부에서 선언된 클래스 클래스 종류1) 중첩 클래스, 인스턴스 클래스 2) 정적중첩 클래스, static 클래스 3) 지역 중첩 클래스, 지역클래스 4) 익명클래스 클래스 안에 필드 선언하는 위치에 선언되는 클래스필드 선언 시 static fie
예외 Exception프로그램 실행 중, 예상치 못한 사건예외 처리 : 미리 예상 회의 상황을 예측 및 처리 try - catch - finally 를 사용예시i로 j를 나누었을 때 오류가 발생하여 강제종료 (0으로 나눌 수 없는 수이기 때문)catch 로 강제종료되지
Throws Exception 처리 무시 및 자신을 호출하는 상위 메소드로 전달 잠재적으로 발생할 수 있는 예외 발생 명시. 오류를 예측 처리 try - catch와의 차이점 1) 예외가 발생한 곳이 아닌, 자신을 호출한 상위 메소드로 Exception을 발생시킨다.
Throw 강제로 오류 발생Throws와 보통 함께 사용됨throw 라인에서 exception 발생new 연산자를 통해 Exception 객체 생성
사용자정의 Exceptionexception class는 이미 정리된 exceprion class와 사용자 정의 exception로 나뉨사용자 class는 이름을 통해 직관적으로 오류를 파악할 수 있게함.checked Exception과 unchecked Excepti
공식 사이트에서 해당되는 사양의 installer 파일 다운로드https://www.oracle.com/java/technologies/downloads/원하는 파일 주소 설정 후, Next 클릭파일 주소 기억해 두기실행완료시스템 환경 변수 편집 클릭환경변수