JAVA란?
- JAVA : 객체 지향적 프로그래밍 언어
- JAVA의 특징
1. 객체 지향 언어 (Object Orient Language)
2. 이식성이 높음 ( 한 번의 컴파일로 Window, Linux, IOS 어디서든 실행됨)
3. opensource 라이브러리가 풍부함 ★
객체지향 언어란?
- OOP(Object Orient Programing : 객체 지향 프로그래밍) 언어
- 자동차 공장에서 각 부품을 조립하여 자동차를 만들듯이 프로그램도 조립한다면 어떨까?
- 누군가가 만들어 공개한 내용을 가져다쓰면 개발 속도가 더 빨라지지 않을까?
- 그 결과 만들어진 것이 바로 OOP언어.
- => JAVA는 누군가 만들어놓은 것을 편하게 사용하기 위한 관점으로 바라보기! ★
변수란?
1. 변수
- 무언가를 담는 컵
- 물을 마시고자 할 때 컵을 이용하여 마시면 물을 흘리지 않고 마실 수 있다.
2. 변수 이름
- 같은 컵이 많으면 구분할 수 없으니까 각 컵을 구분하고 가져올 수 있도록 붙이는 라벨
3. 변수의 타입
- 담는 용도에 따라 컵의 크기와 종류가 달라진다.
- 맥주 - 맥주잔, 막걸리 - 막걸리잔, 소주 - 소주잔, 와인 - 와인잔, 따뜻한 우유 - 머그잔
4. 프로그램에서의 변수
String wineglass = "레드 와인";
// String : 변수 타입 - 담는 값에 따라 타입이 정해짐
// wineglass : 변수 이름
// 레드와인 : 변수 값
- 변수 선언 타입
자료형 | 설명 |
Boolean | 논리 자료형 (true / false) |
String | 문자열 클래스 |
Int | 4바이트의 정수형 자료 타입 |
Long | 8바이트의 정수형 자료 타입 |
Float | 4바이트의 실수형 자료 타입 |
Double | 8바이트의 실수형 자료 타입 |
5. 변수의 영역(scope)
- 변수는 선언된 곳보다 바깥 쪽에서는 사용 불가하다.
- 카페 매장의 머그컵 VS 집에서 가져온 텀블러
- => 매장의 머그컵은 밖으로 들고 나갈 수 없다.
public class VarScope {
String str = "아무거나 입력 하세요."; //클래스 영역에서 생성되었기 때문에 method에서 사용할 수 있다.
public static void main(String[]args) {
int number = 123; //method에서 생성되었기 때문에 method 밖으로 못나간다.
for (int i = 0; i < args.length; i++) {
int sum = 0; //for문 안에서 만들어졌기 때문에 for 밖으로 나갈 수 없다.
sum = i + number; //number는 for문 안에서 사용 가능
}
str = sum + "입니다."; //sum은 for문을 벗어날 수 없다.
}
}
6. 형 변환(casting)
- 한 컵에 있는 내용물을 다른 컵에 옮겨 담는 것
- 묵시적 형 변환 : 작은 컵 -> 큰 컵 : 따로 절차가 필요하지 않음
- 명시적 형 변환 : 큰 컵 -> 작은 컵 : 내용물이 넘칠 수 있기 때문에 절차가 필요
public static void main(String[] args) {
// 명시적 형변환 ( 큰 거 -> 작은 거, 동일크기 다른 형태)
// eclipse에서 자동으로 해 준다.
char charVal;
int intVal;
long longVal;
float floatVal;
double doubleVal;
intVal = 44032;
charVal =(char) intVal; // int 인데 char에 들어갈거야 잘 확인해봐.
System.out.println(charVal); //syso
longVal = 500; //longVal을 intVal에 넣어보자 -> *intVal이 왼쪽에 있어야 함!*
intVal = (int) longVal;
doubleVal = 3.14; //doubleVal을 floatVal에 넣어보자
floatVal = (float) doubleVal;
}
- 타입의 크기 : byte < short < int < long
- 각 타입 별 크기
//byte
System.out.println("byte 크기 : " + Byte.MIN_VALUE +" ~ "+ Byte.MAX_VALUE);
//short(JAVA 에서 거의 안쓴다.)
System.out.println("short 크기 : " +Short.MIN_VALUE +" ~ "+ Short.MAX_VALUE);
//int
System.out.println("int 크기 : " +Integer.MIN_VALUE +" ~ "+ Integer.MAX_VALUE);
//long
System.out.println("long 크기 : " +Long.MIN_VALUE +" ~ "+ Long.MAX_VALUE);
//float
System.out.println("float 크기 : " +Float.MIN_VALUE +" ~ "+ Float.MAX_VALUE);
//double
System.out.println("double 크기 : " +Double.MIN_VALUE +" ~ "+ Double.MAX_VALUE);
Method란?
1. 정의
- 변수가 데이터를 보관하는 바구니라면 메서드는 동작을 실행해주는 무언가이다.
- 변수 : 빨래바구니
- 변수값 : 빨래감
- 메서드 : 세탁기
2. 메서드의 구조
- 구성요소 : 반환 타입, 메서드 이름, 매개변수, 실행문, 반환문
public class Laundry {
public static void main(String[] args) {
String 빨래바구니 = "오늘 입은 옷";
String 바구니 = 세탁기(빨래바구니);
System.out.println(바구니);
}
//세탁기 : 메서드 이름
//빨래감 : 매개 변수
//String : 변수 타입
public static String 세탁기 (String 빨래감) {
//실행문
System.out.println(빨래감+"을 세탁");
System.out.println(빨래감+"을 탈수");
//반환문
return "깨끗한"+빨래감;
}
3. 메서드의 종류
- 메서드는 모든 구성요소를 가지고 있는 것은 아니다
- 반환 타입이 없으면 반환도 없다.
- 매개변수가 필요한 경우 : 매개변수가 들어가야만 메서드가 실행되는 경우
ex) 자판기 - 돈을 넣어야 음료수 뽑을 수 있음 - 반환 타입이 필요한 경우 : 반환 값이 필요한 경우
- 반환 타입 O, 매개변수 O : 커피머신, 토스트기
- 반환 타입 O, 매개변수 X : 대기 번호표 기계, 손소독제 자동분사기
- 반환 타입 X, 매개변수 O : 저금통
- 반환 타입 X, 매개변수 X : 호출벨, 버스 하차벨
//반환 타입 O, 매개 변수 O
String 토스트기(String 빵) {
return "구운 빵";
}
String 커피머신(String 커피캡슐) {
return "커피";
}
//반환 타입 O, 매개 변수 X
String 번호표기계() {
return "번호표";
}
String 손소독제자동분사기() {
return "소독제";
}
//반환 타입 X, 매개 변수 O
void 저금통(int 동전) {
System.out.println(동전+"저금");
}
//반환 타입 X, 매개 변수 X
void 호출벨() {
System.out.println("호출");
}
<개념 질문 타임>
- 객체지향언어란 무엇인가?
=> 특정 코드를 부품처럼 사용하여 프로그램을 개발할 수 있는 언어이다. - 에디터와 IDE의 차이점
=> 에디터는 편집만 가능 IDE는 코딩, 컴파일, 실행, 배포를 모두 하나의 프로그램 안에서 처리하는 환경을 제공하는 프로그램이다. - JDK란 무엇인가?
자바 개발과 컴파일을 위한 도구이다. - 변수란 무엇인가?
- 변수 타입이란 무엇인가?
- 변수 타입이 있는 이유?
- 변수의 scope에 대해 설명하라.
- 변수의 casting에 대해 설명하라.
- 메서드란 무엇인가?
- 메서드의 구성요소에는 무엇이 있는가?
- 반환값만 있는 메서드의 예시를 들어라.
'Back-End > JAVA' 카테고리의 다른 글
JAVA, SPRING 기술 면접 정리 (0) | 2022.09.06 |
---|---|
[자바] 문자열과 제너릭 (String & Generic) (0) | 2022.04.20 |
자바] 조건문-switch, 반복문, 배열, 향상된 for문 (0) | 2022.04.12 |
STS /이클립스] 사용법 (계속 추가) (0) | 2022.04.08 |
[자바] JAVA, STS 설치 (0) | 2022.04.07 |