티스토리 뷰
프로그래밍 발전 단계
순차적 : GOTO , Line 번호, Fortan
구조적 : 함수((Function) , main() , 포인터, 고속처리, Embeded
객체지향 : 클래스(Class), Reference , C , C# , Java
객체지향의 개념
재사용성 : 콤포넌트(모듈) 지향 설계
분리가능성 : S/W 모듈이 각각 분리될 수 있음
자바의 개요
Java : since 1995
OS : 윈도우, 리눅스
JVM : 자바 버츄얼 머신(가상머신)
스택, 힙, 메소드 영역
OOP : 객체지향 프로그래밍
가비지 컬렉션 : 청소부
스레드 : 실
멀티스레드 : 실 꾸러미
자바플랫폼 : API + JVM
JSE (PC) , JEE (서버)
GUI : 그래픽 유저 인터페이스(아이콘으로 실행하는 방식. 예: 윈도우)
class파일 : 자바의 실행파일
exe파일 : 윈도우의 실행파일
JDK : 자바 개발 도구상자
이벤트 : 프로그램을 작동시키는 액션
예) 클릭이벤트, 마우스드래그이벤트, 엔터이벤트
표기법 :
1. 파스칼 표기법 : 첫글자 대문자 + 뒷단어 첫글자 대문자
GoodMorning => 클래스명(객체명)
2. 카멜(낙타) 표기법 : 첫글자 소문자 + 뒷단어 첫글자 대문자
goodMorning => 클래스명을 제외한 모든 단어
단어와 단어사이의 시작점을 대문자로 표기하는 이유는
"가독성" 때문이다.
{ : 시작 브레이스
} : 엔드 브레이스
{} : 블록
class ...{} Hello 클래스 블록
개발순서
- 설계 : 객체 모델링
- 클래스의 속성과 메소드를 문서상으로 나열 정리
- 메소드 Stub(원형, 구조) 새성
- 클래스 형태로 멤버변수, 멤버베소드 선언
- 정의 : 멤버 변수 정의, 메소드 기능 정의
- 구현 : 정의된 클래스를 이용해서,
- 메모리상에 객체를 만들고,
- 객체를 이용한 프로그래밍 작업
자바의 계층구조
- 프로젝트 > 패키지 > 클래스 > 메소드 > 구문 + 변수 = 알고리즘
클래스 구조
- 클래스란 ? 사용자 정의 데이터 타입
- Primitive Data Type -> 구조체(기본데이터 타입의 집합체) -> 클래스
클래스 선언
- 하나의 클래스는 하나의 파일로 생성된다
Foo.java => Foo.class
- *.java 파일 하나 안에는 여러개의 클래스를 넣을 수 있는데,
이런 경우 컴파일을 하면 소스는 하나이나 컴파일의 결과로
만들어지는 클래스는 2개 이상이 된다
- 하나의 파일 안에 클래스가 2개이상 있게 되면 반드시 public 키워드로
진입하는 클래스를 명시해야 합니다. ex) main()
- 클래스가 2개 이상 있는 경우의 파일명은 public 이 명시된
클래스 명으로 저장됩니다.
* 속성과 동작을 통해서 하나의 객체를 만들기 위한 틀
* 파스칼 표기법
* 객체를 만드는데 필요한 설계도
구문(statement)
자바 연산에서 3가지 종류의 구문으로 나뉜다
- 조건문 (if, if -else, switch)
- 반복문 (while, do -while, for)
- 기타구문 (continue, break, return)
Operation Code
- 산술 연산자 : + - * / %
- 대입 연산자 : =
- 복합 대입 연산자 : += -= *= /= %=
- 형변환 연산자 : DataType
- 증감 연산자 : ++ --
- 비교 연산자 : >, >=, <, <=, !=, ==, instanceof
- 비트 연산자 : &, |, ^, ~
- 논리 연산자 : &&, ||, !
- 삼항 연산자 : ()? A : B
- 배열 연산자 : []
- 메소드 연산자 : ()
메소드 개요.
- 함수=method=메소드=function=procedure=처리
- 메소드는 리턴값이 있어야 하는데 없으면 void기술
- 메소드는 함수이름다음에 괄호가 있어야 합니다
- 메소드는 필요한 경우 메소드이름( 매개인자 ) { }
메소드 Syntax.
- C언어의 함수와 동일.
- 데이터 처리 기능을 구현.
- 리턴값이 없는 메소드는 void 형을 지정함.
- 메소드가 받는 인수와 데이터 타입은 메소드를 호출하는 쪽과 일치해야함.
- Method Overloading(중복정의), Overriding(재정의) 기술로 확장.
- 메소드가 리턴하는 값과 리턴되는 값의 데이터 타입은 일치해야 함.
메소드 호출방법
- 참조변수.메소드이름(매개변수..);
메소드의 종류
- static함수=정적함수, 클래스 메소드
- static 이 붙어있는 메소드
- 인스턴스 멤버를 사용할 수 없다.
- 인스턴스를 사용하지 않아도 사용 가능
- Non-static함수=일반함수, 인스턴스 메소드
- static 이 안 붙어있다.
- 멤변 중 모든 인스턴스에 공통 사용하는 메소드
- 메소드 작업 수행시 인변을 필요로 하는 메소드
오버로딩의 예시
- 메소드중복=OverLoading 매개인자갯수나 타입만 다름
- 메소드이름동일, 괄호안의 매개인자갯수나 타입만 다름
기본 데이터타입
논리형 : boolean false
문자형 : char
정수형 : int 0
실수형 : double 0.0
comparison
- if
- switch
loop
- while
- for
기타
- continue
- break
- return => 메소드 진입점에서 대기
Wrapper (래퍼) 클래스
boolean => Boolean
byte => Byte
short => Short
int => Integer
long => Long
float => Float
double => Double
char => String
int a = 5;
Integer a = 5;
변수
멤버변수에 관한 자바 튜토리얼 내용
There are several kinds of variables:
Member variables in a class—these are called fields.
Variables in a method or block of code—these are called local variables.
Variables in method declarations—these are called parameters.
변수의 종류
- 클래스 변수( 클래스 영역, 클래스가 메모리에 올라갈 때, 가장 먼저 생성)
- 인스턴스 변수 ( 클래스 영역, 인스턴스 생성시 생성)
- 로컬 변수 ( 지역변수, 메서드 영역, 변수 선언문 수행시 생성)
인스턴스 변수( instance variable )
- 1. 각 인스턴스의 개별적인 저장 공간.
- 2. 인스턴스 생성 후, "참조변수.인스턴스 변수명" 으로 접근
- 3. 인스턴스를 생성할 때 생성되고, 참조변수가 없을 때
가비지 컬렉터에 의해 자동 제거됨
클래스 변수( class variable = static variable )
- 같은 클래스의 모든 인스턴스들이 같은 값으로써 공유하는 변수
- 인스턴스 생성없이 "클래스명.클래스변수명" 으로 접근
- 클래스가 로딩될 때 생성되고, 프로그램이 종료될 때 소멸
지역 변수( local variable )
- 메소드 내에 선언되며, 메소드의 종료와 함께 소멸
- 조건문, 반복문의 블록{} 내에 선언된 지역변수는 블록을 벗어나면 소멸
- 반드시 초기화를 해 줘야 함
인변, 클변, 지변 차이점
- 인변 : 할당된 값이 가변적
- 클변 : 항상 고정된 값
- 지변 : 매개값 또는 초기값 할당 후 사용 가능
생성자
[초기화]
- 어떤 작업(현실: Job, 프로그램 : Process) 을 시작하기 전에
- 준비(현실 : standby, ready)를 하게 되는데,
- 이것을 프로그램에서는 초기화(initialize)라고 한다.
[생성자]
- 1. 값을 반환하지 않는다. 따라서 return 도 없고 void 로 표시하지도 않는다.
- 2. 생성자의 이름은 클래스의 이름과 동일하다.
- 3. 생성자를 명기하지 않으면, 디폴트 생성자(파라미터가 없는)가
컴파일러에 의해 자동 생성된다.
- 4. 생성자가 여러 개일때, 다른 생성자를 호출할 수 있다.
이때 사용되는 특별한 코드가 this() 를 통하여
클래스내부의 다른 생성자를 호출한다.
단, 생성자 맨 첫줄에서 단 한번만 호출이 가능하다.
5. 4번과 동일한 개념으로 super() 로 부모의 생성자를 호출한다.
배열 문법
- 배열의 각 요소들은 항상 참조변수 명을 통해야 한다
- 요소들은 index 값을 갖는데, 첫번째 요소는 0이다
- 배열은 하나의 객체이다(= 객체형 타입)
- int a = 3; ---> 기본형타입
- int[] arr = new int[2];
- 배열의 길이를 구하려면 length 라는 키워드를 이용한다
'1. 자바' 카테고리의 다른 글
random 문자열, 숫자 만들기 (0) | 2020.05.03 |
---|---|
형변환 & 캐스팅(casting) (0) | 2020.05.03 |
[자바] 제네릭( generics) 기초 (0) | 2020.05.03 |
백준 17173: 5의 배수의 개수와 합 (0) | 2020.05.03 |
MemberView.java (0) | 2020.05.03 |
- Total
- Today
- Yesterday
- vscode
- React
- terms
- docker
- Git
- Mlearn
- intellij
- Mongo
- Python
- Django
- KAFKA
- Java
- jQuery
- mariadb
- SQLAlchemy
- AWS
- nodejs
- springMVC
- tensorflow
- COLAB
- JPA
- SpringBoot
- FLASK
- Eclipse
- Oracle
- ERD
- JUnit
- database
- Algorithm
- maven
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |