프로그래밍/java

JAVA 프로그래밍 49일차 (25/1/20)

wkun 2025. 1. 20. 17:56

contents

 

자바개념정리

 

 

--------------------------------------------------------

 

변수: 데이터를 담는 상자

 

변수의 종류: 전역변수, 지역변수

전역변수: 클래스의 자식

지역변수: 메서드의 자식

 

전역변수를 상태로 구분:

1)static(클래스) 타입

1.로딩전 객체가 생성됨
2. 클래스이름.변수,함수()
3. 1개만 존재가능

2)인스턴스 타입

1.로딩후 객체가 생성됨(new)
2. 참조변수이름.변수,함수()
3. n개 존재가 가능

 

지역변수를 역할로 구분: 1)일반변수 2)매개변수

 

데이터의 종류: 정수(10), 실수(3.14f), 논리(ture), 문자('a'), 참조("abcd")

데이터 타입: 정수형 | int 이름 = 2;

                     실수형 | float 이름 = 3.14f;

                     논리형 | boolean 이름 = ture;

                     문자형 | char 이름 = 'a'; -> char은 숫자이기도 함

                     참조형 | 클래스이름 이름 = new 생성자();

*클래스이름함수 = 생성자

 

형변환: 데이터를 다른 변수로 이동시 발생

형변환 종류: 자동형 변환, 수동형 변환

자동형변환: 1.왜곡이 없어야 됨 2.같은 타입에서 크기가 커야 됨

정수->실수(o)

문자->정수(o)

문자->실수(o)

논리(x)

그 외(x)

 

수동형변환(Casting): 1.왜곡을 감수하고 진행함

정수->문자(o)

실수->문자(o)

실수->정수(o)

논리(x)

그 외(자동 형변환)

*실수를 문자로 변환: 소수점 제외하고 정수의 값으로

 

 

연산자

 

산술연산자: +, - , *, /, %, ++, --

정수

실수

문자

 

비교연산자: >, <, >=, <=, ==, !=, !

정수 | 정수

실수 | 실수

문자 | 문자

 

대입연산자: =

1.대입연산자의 오른쪽의 값을 왼쪽의 변수에 덮어씀

2.제일 마지막에 실행됨

 

논리연산자

&&: 곱하기

|| : 더하기

결과값이 1이면 ture, 0이면 false

 

최우선 연산자

1. [ ]: 대괄호 변수의 묶음 -> 배열

2. { }: 중괄호 내용을 표시할 때; (세미콜론)대신 사용 -> 영역표시  우선순위아님(참고)

3. ( ): 소괄호 수동형변환, 우선연산범위, 함수이름

4. .: 객체(클래스)안에 .앞에는 클래스를 뜻하는 참조변수 혹은 클래스이름만 올 수 있음

 

 

제어문

 

조건문

if문

1.연산의 결과값이 true/false

2.범위값을 설정하여 동작

 

1)

if(조건식) { }
1. 데이터검증 : 변수에 값이 (not null)있는지 없는지(null) 검사시 주로 사용
2. 특정 데이터 값과 같은지 검사해서 동작할 때 사용(switch와 유사)

 

2)

if(조건식) { }
else{ }
1. 선택지가 2가지일때 사용할 수 있음. 특히 값과 일치할때는 Switch와 구조가 유사해질수 있고 보통은 범위 ~보다 크고 작다면 else와 같은 방식으로 동작함

 

3)

if(조건식) { }
else if( ) { }
else{ }
1. 범위를 세분화해서 다구간으로 선택해서 사용할 수 있음

 

switch문
1.연산의 결과값이 숫자일때
2. 특정값에 매치되어 동작

 

 

반복문

for
1. 몇번반복

 

1)초기값
int i=0;

2)조건식
i<10

3)증감식
i++

 

while
1.조건만족

 

1)조건식
i<10

 

continue
1. 현재작업을 종료
    처음부터 다시

2. 변수의 값이 잘못되었다고 판단될 경우 다시 시작하여 값을 재조정

 

break
1. 반복문 종료

 

 

배열

 

변수의 묶음
1.변수의 이름 혹은 데이터 타입 [ ]표시로 사용
2.여러개의 변수가 하나의 이름을 아래와 같이 사용함

String[ ] Students = new String[3]; 객체생성을 해야함

    int a; a = 3;
1. int [ ] a = new int[3];  a[0] 3;
2. int [ ] a = {1,2,3};       a[0] 호출

 

 

클래스: 문서의 단위, 설계도임. 객체생성을 통하여 설계도는 객체가 됨

 

함수 : 데이터를 실행하는 기능단위

 

함수의 종류: 일반함수, 생성자

1.일반함수 :

1)이름() {}

2)리턴 데이터 타입 : 정수형, 실수형, 문자형, 논리형, 참조형
 int 이름(){return 9;}

3)             

int 이름(){return 9;}
인스턴스
Static
static int 이름(){
   return 9;
}
1.로딩후 객체가 생성됨(new)
2. 참조변수이름.변수,함수()
3. n개 존재가 가능


1.로딩전 객체가 생성됨
2. 클래스이름.변수,함수()
3. 1개만 존재가능

4)

접근제어자
public static int 이름(){
return 9;
}
public
1. 어떤 패키지에서든지 접속이 가능함
protected
1. 같은 패키지만 가능
2. 상속받은 클래스가능
default(생략)
1. 같은 패키지만 가능
private
1. 같은 클래스만 가능
2. getter / setter를 전역변수를 위해서 사용해야됨

5) 매개변수
1.전달되는 파라미터를 수신하는 변수
2.지역변수로 취급됨

 

오버로딩
1. 같은이름의 함수가 여러개
2. 매개변수의 갯수 , 데이터타입
3. 주로 생성자에서 많이 사용

 

2. 생성자 :

1)클래스이름(){} ->  전역변수의 값을 넣어서 객체 생성

2)리턴 데이터 타입 없음

3)인스턴스 static 없음

4)접근제어자

public 클래스이름( ){

}

5) 매개변수
1.전달되는 파라미터를 수신하는 변수
2.지역변수로 취급됨

 

오버로딩
1. 같은이름의 함수가 여러개
2. 매개변수의 갯수 , 데이터타입
3. 주로 생성자에서 많이 사용

 

*일반함수 만드는 순서

1) 이름( ) { }
2) int 이름( ) { return 9;} 리턴 데이터
리턴 타입모르면 void
3) 인스턴스/static
인스턴스: 정자(△)
static: 이탤릭체(s△)
4) 접근제어자
import: public(o) 없으면 그 외 default... 
5) 파라미터: 전달값
순서:       static void manual(파라미터)
         4)      3)     2)       1)        5)

 

 

상속과 다형성

 

클래스

 

↓   확장

상속
1. 특정클래스를 지정하여 소속된 함수와 변수를 자기것과 같이 사용하는것
2. 오직 하나의 클래스만 허용됨

super()
1. 부모클래스의 생성자
공통
인터페이스

오버라이딩
1. 부모의 함수를 자식이 재정의하는것(리모델링)
2. 자식의 함수가 더욱 높은 우선순위를 가짐
다형성 : 참조변수
1. 전달받는 매개변수를 그룹화시켜서 코드를 줄일수 있음
2. 부모타입의 참조변수에 자식클래스객체를 담을 수 있음
3. 부모클래스에서 자식클래스함수가 없다면 접근할 수 없음