변수 : 값을 저장하기 위해 메모리에 붙인 이름변수를 통해 프로그램은 메모리 번지에 값을 저장하고 읽을 수 있다.하나의 변수에는 하나의 값만 저장할 수 있다. 변수에 어떤 타입의 데이터를 저장할지, 변수 이름이 무엇인지를 결정한다 변수가 어떤 값을 갖고 있는지 쉽게
자바가 제공하는 변수 기본 타입은 정수형, 문자형, 실수형, 논리형이 있습니다.
타입 변환(type conversion) : 하나의 타입을 다른 타입으로 바꾸는 것boolean을 제외한 기본 타입들은 자유롭게 변환 가능하다. //변수기본타입 정리글 https://velog.io/@jeong11/Java-variable-primitive-t
연산식,연산자,연산자 종류 : 연산에 사용되는 표시나 기호를 연산자(Opreator)라 한다. +, -, *, /, %, |, ||, == ...
조건문은 조건식에 따라 다른 실행문을 실행하기 위해 사용된다. 조건문의 종류로는 if문과 switch문이 있다.
반복문 : 조건식에 의해 명령을 반복 실행 반복의 횟수가 정해져 잇는 경우 breakpoint 설정 => F11 => Debug 모드로 변환 =>F6 눌러 프로그램의 흐름 파악 => Debug 모드 프로그램의 흐름 종료 => Java 개발모드 변환 => breakpoi
참조 타입 : 기본 타입을 제외하고 배열, 열거, 클래스, 인터페이스 등을 말한다. 참조 타입의 변수에는 객체의 번지가 저장된다.
배열 : 같은 타입의 변수를 하나로 묶어서 다루는 것 많은 양의 값(데이터)을 다룰 때 유용하다. 1차원배열 , 다차원배열
객체지향 프로그래밍(OOP)의 특징 1) 캡슐화(Encapsulation) = 데이터와 메소드를 묶은 것. 객체의 외부에서 데이터에 직접 접근하지 못하게 하고 함수(메소드)를 통해서만 조작할 수 있다. 2) 정보 은닉(Information Hiding)
: 객체를 정의, 객체를 생성하는데 사용된다. 객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 메소드로 구성되어있다. 필드 : 클래스에 포함된 변수메소드 : 특정 작업을 수행하기 위한 명령문의 집합클래스 객체\|---\|---\|클래스를 선언할 때는 생성자(Con
변수의 선언 위치가 변수의 종류와 범위를 결정한다. 변수에는 클래스변수, 인스턴스변수, 지역변수가 있다. 인스턴스변수(instance variable) : 클래스변수(class variable) : 지역변수(local variable) : 메소드
호출스택(Call Stack) : 메소드 수행에 필요한 메모리가 제공되는 공간 - 메소드가 수행을 마치면 사용했던 메모리를 반환 - 호출 스택의 제일 위에 있는 메소드가 현재 실행중인 메소드, 나머지는
기본형 매개변수 : 변수의 값을 읽기만 할 수 있다. (only read만 가능) 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다. (read & write 가능)
클래스 내 같은 이름의 메소드를 여러 개 선언하는 것을 말한다. 매개값을 다양하게 처리할 수 있기 때문에 필요하다. 1) 메소드 이름이 같아야 한다. 2) 매개변수 갯수나 타입이 달라야 한다. 3) 반환 타입은 영향없다.
인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메소드'를 말한다. //인스턴스: =객체, iv 묶음//인스턴스 초기화 : 인스턴스 변수에 적절한 값을 저장하는 것인스턴스 생성시 수행할 작업(iv 초기화)에 사용된다. iv 초기화를 편리하게 하기 위해 생성자를 만든
1) 지역변수는 직접 초기화해줘야 함 - 필수\*cv와 iv 초기화에는 자동초기화, 간단초기화, 복잡초기화 3가지 방법이 있다. 자동초기화는 저절로 0으로 초기화되고 간단초기화는 대입(=)연산자를 사용하고, 복잡초기화는 {}, static{}, 생성자를 사용한다. 1)
기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것, 자식은 부모의 모든 멤버를 상속받는다(생성자, 초기화블럭 제외)자식의 멤버갯수는 부모보다 적을 수 없다(같거나 많아야함)
조상클래스로부터 상속받은 메소드의 내용을 상속받는 클래스에 맞게 변경하는 것을 오버라이딩이라 한다. //override : '~위에 덮어쓰다(overwrite)' 오버로딩과 헷갈리지말자
super : this와 유사함, (this : lv와 iv 구별에 사용)객체 자신을 가리키는 참조변수 인스턴스 메소드(생성자)내에서만 존재 => static 메소드에서 사용불가 조상 멤버를 자신의 멤버와 구분할 때 사용함
서로 관련된 클래스의 묶음 클래스는 클래스파일 (\*.class),패키지는 폴더소스 파일의 첫 번째 문장으로 단 한번 선언같은 소스 파일의 클래스들은 같은 패키지에 속한다. 패키지 선언이 없으면 이름없는(unnamed) 패키지에 속하게 된다. - default pack
import문 : 사용할 클래스가 속한 패키지를 지정하는데 사용한다. - 이클립스 단축키 [ctrl]+[shift]+O(알파벳) : 자동으로 import문 생성 - 클래스를 사용할 때 패키지 이름을 생략할 수 있다.
클래스와 클래스의 멤버(멤버 변수, 메소드)에 부가적인 의미 부여하고 크게 접근 제어자와 그 외 제어자로 나눌 수 있다. 하나의 대상에 제어자를 여러개 사용할 수 있으나 접근 제어자는 한번만 사용 가능하다.
캡슐화와 접근제어자 캡슐화 : 데이터를 보호하기 위해 접근 제어자를 사용하는 것을 말한다. Q. 접근제어자를 사용하는 이유는? A. 외부로부터 데이터를 보호하기 위해 사용한다. 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서 사용
이항연산자이며 피연산자는 참조형 변수와 타입이다. 연산결과는 true/false로 나온다. 참조변수가 참조하는 인스턴스의 실제 타입을 체크하는데 사용된다. instanceof의 연산결과가 true면 해당 타입으로 형변환이 가능하다.
추상클래스(abstract class) > 추상메소드를 포함하고 있는 클래스를 말한다. 인스턴스를 만들 수 없는 클래스 new 연산자 사용 불가능 다른 클래스를 작성하는데 도움을 줄 목적으로 생성됨 추상메소드(abstract method) > 1) 선언부만 있고 몸
인터페이스(Interface) > 모든 멤버가 추상메소드인 타입, new 할 수 없음 추상클래스의 일종으로 추상클래스보다 인터페이스가 추상화 정도가 높다. 실제 구현된 것이 전혀 없는 기본 설계도 추상메소드와 상수만 멤버로 가질 수 있음 인스턴스 생성할 수 없음 클래
인터페이스(Interface) 지난 포스팅 : OOP_인터페이스 ArrayList와 LinkedList > 자바의 List인터페이스를 상속받은 클래스 중 하나 ArrayList 배열을 사용해 List 구현한 클래스 일반 배열과 동일하게 연속된 메모리 공간을 사용,
객체지향 프로그래밍은 시간과 비용에 대한 효율성을 더 좋게 만드는 프로그래밍 기법이다. 절차지향은 함수를 사용한 코드로 프로그램을 만들때마다 절차를 다 만들어줘야하고 약간의 변화에도 손이 많이 가서 유지보수/확장성 측면에서 생산성이 떨어진다. 반면 객체지향은 추상화,