1주차

김예지·2022년 6월 24일
0

1일차

클래스란

  • 한 개 이상의 속성들과 한 개 이상의 기능들로 이루어진 집합체
  • 객체를 만들기 위한 최소 단위

클래스 형식(=문법=Syntax)
public
[접근제어자] class 클래스명{
멤버필드1; (=속성=property=attribute=요소)
멤버필드2;
멤버필드3;
...

메소드1(=메서드) (=기능)
메소드2
메소드3
...

}

클래스명, 변수명을 붙이는 명명규칙

  1. 클래스명은 첫글자로 올수 있는 것으로는 $ 영어대문자 세 개 중에 가능
    => 변수명은 첫글자로 올수 있는 것으로는
    $ 영어대문자/소문자까지 가능

  2. 클래스명이나 변수명에 숫자를 사용할 수 있으나 첫글자에서는 숫자 사용 불가

  3. 특수문자로는 _ $만 가능하다

  4. 클래스명은 되도록 첫글자만 영어대문자로 나머지는 영어소문자로 기술(권장사항)
    변수명은 되도록 영어소문자로 기술(권장사항)

  5. 이름사이에 공백이 있으면 절대 안된다.

  6. 이름은 카멜기법, 파스칼기법, 스네이크기법등으로 기술해준다(권장사항)

    카멜기법 : 두 단어 이상이 결합된 이름을 지을 경우 연결되는 단어의 첫 글자를 영어대문자로하는 방법
    예: TestJava HelloJava,

    스네이크 기법: 두 단어 이상을 결합시 _로 연결하는 방법
    예: Test_java , Hello_java

  7. 키워드(=예약어)로는 이름을 지을 수 없다.

ASCII > ANSI > EUK-KR > UTF-8(유니코드)

연산 : 명령문을 실행해서 처리하는 것을 연산이라고 한다

연산자 (오퍼레이터 = operator) : 피연산자를 연산처리하기 위한 기호
피연산자 (항=오퍼런드=operand) : 연산의 대상이 되는 것을 말함

연산자의 종류 및 우선순위
1. 괄호연산자 : () {} []
2. 단항연산자 (항이 한 개인 연산자)
논리연산자 : !(부정)
비트연산자 : ~(부정)
전위연산자 : ++ , --
접근연산자 : .
부호연산자 : + , -
3. 이항연산자 (항이 두 개인 연산자)
결합연산자(문자열결합) : +
산술연산자 : *(곱셈) , /(나눗셈-몫) %(나눗셈-나머지) + , -
비교연산자 : == , != , < , <= , > , >= instanceof
논리연산자
비트 : &(논리곱 AND-> 모두 참인 경우만 참, 나머지는 거짓 )
|(논리합 OR-> 모두 거짓인 경우만 거짓, 나머지는 참)
^(배티적논리합 XOR -> 항이 서로 다른 경우만 참 , 나머지믄 거짓) => 값을 1,0으로 반환
--> 조건식에서 사용
논리곱 : &&(두 조건이 모두 참인 경우만 참)
논리합 : || (두 조건 중 하나라도 참인 경우 참) => 값을 true , false 로 반환

  1. 삼항연잔사(항이 새 개인 연산자)
    => 조건식 ? 참일떄의 실행문이나 값 : 거짓일떄의 실행문이나 값

  2. 대입연산자 : = , *= , /= , %= , -= , +=

  3. 후위연산자 : ++ , --

지역변수는 자동 초기화 불가능
멤버면수는 자동 초기화 가능

src안에 클래스 만들기

2일차

논리연산자

  • 논리곱 && ( 둘 다 참 ) : 앞이 false이라면 뒤쪽은 생략
    & 은 앞이 false 여도 뒤의 값을 계산한다
  • 논리합 || (둘 중 하나가 참이면 참 ) : 앞이 true라면 뒤쪽은 생략
    | 은 앞이 true 여도 뒤에 값을 계산한다
int value2 = 5; // 값 자체를 일컫는 용어는 리터럴(literal)이라고 함 
		System.out.println(true || value2++ > 6); // value2++ > 6 는 계산하지 않는다 ( 앞이 true이기때문에 생략 )
		System.out.println(value2);

true
5

  • 비트연산(AND &) : 모든항이 1(true)경우만 1
  • 비트연산(OR |) : 모든항이 0(false)인 경우만 0
  • 베타적논리합(XOR ^) : 두항이 서로 다른 값인 경우만 1

변수 : 값이 변하는 수
상수 : 값이 변경 되지 않는 수 (키워드 'final=막는다, 금지한다' 추가)
상수명은 되도록 영어 대문자로 기재
상수는 반드시 선언과 동시에 초기화가지 해야 함
변수 상수명은 대소문자 구별 함(클래스이름은 대소문자 구별 안 한다)

frintf 포맷 사용
포맷 기호
%d 10진수 , %o 8진수 , %x/X 16진수 ,
%s/S 문자열 , %f 실수행 (float) ,
%.2f .2는 소숫점 둘째자리에서 반올림하라는 뜻

System.out.printf("%10.2f\n", 3.2582);
// 10은 10자리표시 (양수는 오른쪽 음수는 왼쪽)
 3.26 

조건문 : 어떤 조건에 따라 값을 boolean형으로 판단하여 그 값에 따라 기능을 수행하도록 처리하는 명령문

조건문 형식
기본 :

  • if(조건식){
    실행문; (출력, 실행, 제어문 , 지역변수 ) }
    if문은 조건식 값이 true일 때 실행됨
    <세트>
  • if(조건식) {
    실행문;
    } else { 실행문
    }
    if문이 거짓인 경우 else문 실행됨
  • if(조건식 / 조건식이 참일 때 실행){
    } else if(조건식2 / 조건식2이 참일 때 실행) {
    }else if(조건식3 / 조건식3이 참일 때 실행) {
    } else (조건식 1,2,3이 부합이 되지 않을 때 실행) {
    }

조건문 switch case 구문
형식 swich(조건값 /int 이하 문자열까지만 가능 ) {
case 값 : 실행문; break;
case2 값 : 실행문; break;
case3 값 : 실행문; break;
default : 실행문; (생략가능)
}

break가 없으면 true이후 문장을 다 실행 시킨다

중첩 if조건문
형식 if(조건문){
참일 때 실행;
if(조건식2){
조건 2가 참일 때 실행;
}else if(조건식3){
}else {
위의 조건이 모두 아닌 경우 실행;
}else{
거짓일 때 실행;
if else(조건식4){
조건식 4가 참일 때 실행;}esle {
조건식이 모두 거짓일 때 실행
}

*지역변수는 재선언을 할 수 없음 단 재사용은 가능

3일차

  • 반목문 (for문)

    기본형식
    초가식은 한 번만 실행이 된다.
    조건식은 값이 boolean으로 반환 ,만족하지 않을 때 까지

    증감식 후위연산자

  • for(초기식; 조건식; 증감식){
    실행문 : 조건문, 반복문, 출력문, 지역변수
    }

break : 제어문안에 들어있는 break는 자신을 감싸고 있는 최초의 제어문 밖으로 나간다

continue : 건너띄기, 자신을 감싸고 있는 최초 제어문의 for문으로

int n = 0;
		for( n = 1; n <= 10; n++){
			<=10 거짓 여기서 멈춤 
            //for 안에서는 n의 값 10
			System.out.println(n);
			
		}
		System.out.println("n의 값은: " + n);//n <= 10 값을 확인하고 다음으로 넘어감 (11) 11

-> 11

  • 제어문 (=반복문) - while문
    형식 while(조건식 값){
    실행문 : 출력문 ,지역변수 ,제어문,조건문 증감식(조건식을 만족시킬 수 있는 수식), 분기문(break, continue) } 반복문(=제어문) do~while문
    형식 do{ //조건이 만족되지 않아도 do{} 안의 실행문은 맨 처음 한번은 실행된다.
    실행문 : (출력문, 조건문, 제어문, 지역변수, 분기문, 증감식
    } while (조건식 값)

라벨 제어문 위에다 위치
라벨이 붙으면 제어문 전체를 종료 시킨다

gugudan: //라벨 for문 위에다 위치 
		for (int i =2; i<=9; i++) {
			if(i<4)System.out.println("구구단 " + i + "단");
			for (int j = 1; j<=9; j++) {
				if (i == 4) break gugudan; //라벨이 붙으면 for문 전체를 실행 종료 시킨다 
				System.out.println(i + "*" + j + "=" + (i * j));
			}System.out.println();
		}
		System.out.println("\n============================\n");

4일차

무한루프 형식

for( ;; ){
}

while ( true ){
}

do{
}while(true);

  • 배열 : 같은 자료형의 값을 여러개 요소들의 집합체
    인덱스 = 방번호 0부터 시작

    형식
    자료형[] 변수명(참조변수명) ;
    or 자료형 변수명[]

    공간 할당 방법
    변수명 = new 자료형[방개수];

    초기화 방법
    변수명[인덱스 번호] = 리터럴;

    선언&공간할당 동시
    자료형[] 변수명 = new 자료형[방개수];

    선언&공간할당&초기화 동시
    자료형[] 변수명 = new 자료형[]{값1,값2 ~};

    단축형식 <선언, 공간, 초기화> //가장 많이 사용 됨
    자료형[] 변수명 = {값1,값2~};

    int[] iarr = new int[5]; //iarr.length(배열 길이) (키워드) => 5
    iarr[2] = 5; (초기화)

for문 단축어 형식
for(자료형 변수명 : 배열객체명){ 실행문 };
배열객체 인덱스 순서대로 1개씩 떼옴

객체명.length() (메소드) = 문자열 길이를 출력

System.arraycopy(객체명 , 객체명 star idx(어느 위치부터 복사 할건지), 새로운 객체명 , 새로운 객체명 star idx(어느 위치부터 복사 받을건지) , 객체명에서 복사 해 올 갯수); //배열 복사 기능

5일차

  • 이차원 배열 : 행과 열로 이루어진 집합체 (같은 자료형만 가능)
    형식
    자료형[행][열] 객체명;
    공간할당
    자료형[][] 객체명 = new 자료형[행개수][열개수]; //행 개수는 필수
    초기화
    자료형[][] 객체명 = new 자료형[2][];
    객체명[0] = new 자료형[열 개수];
    단축 생성
    자료형[][] 객체명 = {{값1 값2}, {값1 값2}, {값1 값2}}
		String s1 = "Java Korea";
		//직접 문자열을 지정(canonical 문자열)
		//단축(shorthand) 초기화로 객체 생성
		String s2 = new String("Java Korea");
		String s3 = s2.intern(); //intern() 메소드 = 문자열만 추출 
		//s2 문자열을 canonical 문자열로 전환
		String s4 = "Java Korea";
		//단축 초기화로 객체 생성
// 같은 문자열은 메모리 주소가 같다 하지만 new키워드가 붙으면 힙 메모리 주소가 달라진다 
		System.out.println("> String 객체가 참조하는 주소가 같은지 비교");
		System.out.println("s1 == s2 :" + (s1 == s2));
		System.out.println("s2 == s3 :" + (s2 == s3));
		System.out.println("s1 == s3 :" + (s1 == s3));
		System.out.println("s1 == s4 :" + (s1 == s4));
		
		//객체에서 == 은 주소 비교 

객체명.hashCode() : 메모리의 주소값

System.identityHashCode(객체명) : 힙 메모리의 주소값

객체명.concat() 메소드 : 문자열 뒤로 새로운 문자열 추가

객체명.trim() 메소드 : 문자열 기준으로 앞 뒤 공백만 제거 (중간 공백은 제거 X)

객체명.charAt(문자열 인덱스 번호) 메소드 : 가져올 문자열 인덱스번호안의 값을 char에 저장 시킨다.

객체명.substring() 메소드 : 문자열 일부 발취 (값이 하나면 시작 인덱스부터 종료 인덱스 까지)
(값이 두개면 시작 인덱스부터 종료 인덱스 -1 까지)

객체명.indexOF() 메소드 : 문자열에 문자가 있는지 찾고 그 문자의 첫 번째 문자의 인덱스를 표시해준다

객체명.lastIndexOF() 메소드 : 역순으로 찾는다

객체명.indexOF() 객체명.lastIndexOF() 에
숫자가 붙으면 왼쪽부터 오른쪽으로 작성한 숫자인덱스 번호 찾아감

객체명.contains() 메소드 : 문자열이 포함이 되어있는지를 확인 시켜주는 메소드

객체명.replace() 메소드 : 작성한 문자열을 객체 문자열에서 찾아 작성한 문자열로 대체
형식 객체명.replace("포함되어있는 문자열","대체할 문자열")

객체명.replaceAll() 메소드 : 특정문자열만 바꿀 수 있는 기능이 있음

String str = "abcdefghijk";
System.out.println("result ===> " + str.replaceAll("[abchij]", "굿"));
		System.out.println("result ===> " + str.replaceAll("[^abchij]", "굿"));

result ===> abcdefghijk
result ===> abc굿굿굿굿hij굿

만약 replace()로 하려면 바꾸려면 하나씩 다 작성 해야한다

객체명.toUpperCase() 메소드 : 문자열 전체를 대문자로 변경

객체명.toLowerCase() 메소드 : 문자열 전체를 소문자로 변경

  • 클래스 : 하나 이상의 메소드와 하나 이상의 필드로 구성된 집합체

  • 객체 : 현실에서는 식별 대상 모두
    컴퓨터에서는 연산 처리, 컴퓨터가 작업 할 수 있는 최소 단위

  • 메소드(기능) : 처리 할 실행문을 묶어 놓은 집합체

메소드 형식 : [접근제어자][기타제어자] 자료형 리턴 할 타입 메소드명(매개인자(선택) 변수 객체 올 수 있음 ){
실행문; : 출력문, 조건문, 제어문, 지역변수, 지역객체
return; 반환값;(선택)(실행문,조건문,제어문 못 들어옴)
}

리턴타입(자료형) 종류
void : 리턴 할 값이 없다 라는 뜻 (return 생략가능)
기본자료형 : int double 등등
클래스급 이상의 자료형 : String, int[] 등등

  • 메소드 호출문
    리턴타입이 있다면 리턴타입 기재 (매개인자 자료형 X) 메소드 명(매개 변수가 있다면 입력(자료형 때고 기재));
profile
나만의 방식을 찾아가는 신입신입 개발자

0개의 댓글