본문 바로가기
자바과정/Java

Java 기초 - 1일차

by Parkej 2021. 1. 29.

(정리필요)

 

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 Packages | The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source pro

438 MB 6,055 DOWNLOADS The Modeling package provides tools and runtimes for building model-based applications. You can use it to graphically design domain models, to leverage those models at design time by creating and editing dynamic instances, to collabo

www.eclipse.org

 

(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
*/

 

 

반응형

댓글