(정리필요)
1. Java의 기원 및 OOP
- 자바의 탄생
Sun사 > Oracle (DB)
JAVA : 임베디드 목적 -> GAME(한국/ 웹환경) > 인터넷뱅킹, (코볼 > Java) > mobile(아이폰) > iot
- 장점 : 소형, 장소의 구애를 받지 않음
자바
OOP언어(Object Oriented Language) 객체지향언어 > object
그 전 절차지향(c) 자바 이후 객체지향(c#도)
Object : 사람이 정의한 모든것. ( 물체든 ) 실세계 정의하는 모든것은 객체라고 말할 수 있음. + 구체화 (추상화 X, 추상클래스는 객체를 못만듦)
감정은 다 가지고 있음. 대신 사랑 미움 화남 이거는 사람이 정의함.
OOP 4대 특징 (정확하게 이해하기 )
1. 추상화(abstraction) : 추상적 -> 구체화 ( 설계 ), 구별이 가능하게 해야함.
가르마 머리, 큰 코, 안경, 현실주의,
2. 캡슐화(Encapsulation) : 데이터의 보호, 은닉 (외부에서 데이터 접근 X, 쓰고싶으면 주인을 통해 써야함)
3. 상속(Inheritance) : 코드의 확장성, 재사용성 (개념을 알아야함) (자바는 100% 상속구조 객체만들때 상속됨.)
4. 다형성(Polymorphism) : 편하게 쓰려고 (편하게 작업)(오버라이딩, 동적 바인딩, 제네릭 등등...)
참고 : velog.io/@ygh7687/OOP%EC%9D%98-5%EC%9B%90%EC%B9%99%EA%B3%BC-4%EA%B0%80%EC%A7%80-%ED%8A%B9%EC%84%B1
객체를 만들때 이 물건을 만들어서 판매하는 입장으로 생각해라 (객체를 상대가 만족할 수 있게끔 만들어야함. )
Java는 API를 제공 (객체제공) 많음 .
2. Java 개발도구 준비(설치)
- jdk 설치
www.oracle.com/kr/java/technologies/javase-downloads.html
- eclipse 설치
www.eclipse.org/downloads/packages/
(eclipse IDE for Enterprise Java Developers로 설치)
- 환경변수 설정
변수이름 CLASS_PATH
변수값 .;
변수이름 JAVA_HOME
변수값 C:\Program Files\Java\jdk-15.0.2
PATH 편집
%JAVA_HOME%\bin 입력 후 맨 위로 옮기기
3. Java 함수사용과 연산자
+ 패키지
+ 임포트
- 기본 구조
class 클래스이름
{
public static void main(String []ar){ //메소드
}
}
/*
이름 규칙
클래스명 : 첫글자는 대문자. BlackWhite
변수, 메소드 : 소문자로 쓴다. inserData
상수 : 전체 다 대문자
단어와 단어를 연결해서 만들경우 두번째 단어의 첫글자는 대문자.
상수 : 변하지 않는 값.
변수 : 변하지 않는 값(상수)을 저장하는 메모리 공간
*/
/*
* 상수 : 변하지 않는 값
* 변수 : 상수를 저장하는 메모리 공간
*
* 데이터타입
* 1. 기본타입
* 논리형 (TRUE/FALSE) boolean
*
* 문자형 //char 2byte
*
* 정수형 //byte,
* short 2
* int 4byte
* long
* 실수형
* float 4byte
* double 8byte
*
* 2.레퍼런스타입
* 배열
* 객체
*
* 1. 사용용도를 알수있게 이름을 정해라
* 2. 첫글자는 영문자, _ 허용
* 3. 특수문자 못씀.
* 4. 키워드 불가. (미리 정해져있는 말들)
* 5. 최대 32자까지 허용
*
* 지역변수는 초기화를 하지 않을경우 에러가 발생해서 사용할 수 없다.
* * 변수선언
* datatype 변수이름;
* // 10
*
* int num; // 변수선언 4byte
*
* // 초기화 : 변수에 값을 넣는 행위
*
* num = 10;
*
*
* 'A' '3' "A": 문자열 끝을 표현하는 null값까지 2Byte
* 문자는 2Byte
* 문자열은 4Byte
*
* 버퍼 : 임시 저장 메모리 공간
*
* 1. 지역변수 ( local variable) auto variable
* : 메소드 내에서 선언한 변수
* : 메소드가 호출될때 메모리 생성이 되고, 끝나는 순간 사라지는 메모리 (생명주기)
* : 지역변수는 꼭 초기화를 해서 사용
*
* 2. static field : 객체와 무관하게 생성
* intstance field : 객체가 생성할 때
*
*/
public static void main(String []args){ // 메소드, 함수, function / 외부접근허용. 객체 생성 전, 무취형(값이없음), (문자열[] 매개변수 인자 아규먼트)
시작과 끝 담당.
메소드는 메소드가 부름
메인(메인함수)은 OS가 부른다.
char name
int age
boolean
First.ej() 함수호출
int는 return 이 필요
/*
* method(함수)
* : 특정 기능을 수행하는 것.
*
* 1. instance method
* - 인스턴스는 클래스 이름이 필요가 없음.
* 2. static method (static때문에 메모리가 미리 생성됨.) : 객체와 무관하게 미리 메모리가 생성
* - 객체가 있든 없든 쓸 수 있다. this 없다.
* - 클래스이름.메소드() 호출
*
* 사용자정의 함수.
*
* 접근지정자 returnType functionName( argument....){
*
*
* }
* 접근지정자
* 1. private : 나만
* 2. default : 같은 패키지내에서만 접근가능
* 3. protected : 상속받은 sub class까지
* 4. public : 아무나...
*
*/
- 연산자
/*
연산자 (operator)
산술, 논리, 비트, 비트이동(시프트), 대입, 증감관계, 복합할당, 삼항
산술연산자 : + - * / % a+b
논리연산자 : (00 0, 01 0, 10 0, 11 1) &&(and) , ||(or) 하나만 트루여도 실행, ^, !
비트연산자 : &(무조건 2진수) , |
a = 3; b = 4;
a&b = 0011,0100
= 0 0 0 0 = 0(10진수)
a|b = 0011,0100
= 0111 = 7(10)
비트이동연산자(시프트) : >> , <<
a = 3;
a >> 1;
b << 1
0011 > 0001
0100 > 1000
대입연산자 : =
증감연산 : ++, -- : 내 자신의 값을 1증가, 1감소
관계연산자 : > , < >=, <= == !=
복합할당연산자 : +=, *=, /=, %=, <<=.....
a=a+4; // a+=4; a=a<<1; => a<<=1;
삼항연산자 : '?:'
(조건식)? 문장1 : 문장2 ;
조건이 참이면 문장1 거짓이면 문장2
++a;(선증가) a++;(후증가)
b = ++a;
systemoutprintln(a)
systemoutprintln(b)
= 4
b = a++;
a:4, b:3
*/
'자바과정 > Java' 카테고리의 다른 글
Java 기초 - 2일차 (0) | 2021.01.29 |
---|---|
Java 실습(사칙연산 반복계산) - 2일차 (0) | 2021.01.29 |
Java 실습(구구단) - 2일차 (0) | 2021.01.29 |
Java 실습(종이접기) - 2일차 (0) | 2021.01.29 |
Java 실습(사칙연산계산기) - 2일차 (0) | 2021.01.29 |
댓글