카테고리 없음

7/22 쌍용교육센터(이클립스 사용 시)

dlsgur0528 2024. 7. 22. 09:04

논리연산 할때 일관성있는 코딩을 위해선 비교값을 아펭두고 기준값을 뒤에 정의하는 것을 지향하자

int = num = 7;
(num>22) //이런식으로 비교할값 먼저, 비교할 기준값을 뒤에

 

package

  • 자바에서 클래스 (*.class = > bytecode라고 부름)는  바이트코드를 저장하는 기본 단위(directory)
  • 같은이름의 클래스를 여러 개 만들 수 있다.
  • 업무를 구현한 클래스들을 묶어서  관리할 수 있다.
  • class를 작성할때 가장 윗줄에 한번만 선언 할 수 있다.
  • 패키지 컴파일 (-d . 하는 코드임)을 수행 한 후, 패키지명을 포함하여 실행해야 한다.
  • java의 패키지명과 동일하게 사용하면 안된다. 에러는 아니지만 문제생김

패키지의 작성법)

  • package 패키지명;

패키지명은 역방향 도메인을 사용한다.

도메인? 주소임 

도메인은 크게 두개 역/정 방향

도메인의 정의: Network - ip address를 사용하여 컴퓨터를(단말) ㅅ식별하기위해서 사용.

                         그래서 사람이 기억하기 좋게 영어 혹은 영어+숫자로 된 domain을 만들었다.

 ex) sist.co.kr을 사용하면 DNS SEVER에 요청하여 해당 컴퓨터의  ip를 얻고 컴퓨터에 접속을 하게 된다.

   네트웤에서는 ip를 가지고 컴퓨터를 식별, 사람보기 좋으라고 식별하는게 도메

정방향 도메인: 사람이 사용하는 언어를 가지고 웹브라우저에 치면 ip로 바뀌주는걸 Network에선 정방향이라 함

역방향 도메인:  정방향 절차의 반대로 진행 되는것. (자바에서 활용)

 

자바에서의 역방향 도메인은 domain을 거꾸로 작성하는 것을 말한다

ex) sist.co.kr -> 정방향

     kr.co.sist -> 역방향 여기에다가 이제 하는 일을 붙인다.

kr.co.sist. 하는

 

도메인을 활용하면 어느정도의 정보를 찾을 수 있다.

 

그 이후에 작성할 클래스 나옴

class 클래스명{}

 

package day 0722;

class Test{
		//이렇게 되면 Day0722 폴더에 Test.class 클래스가 생성됨
}


package kr.co.sist;

class Test{
		//이렇게 되면  kr폴더안 co폴더안 sist폴더안에 Test.class가 생성됨.
}

 

 

 

패키지컴파일?

방법)   javac -d . 소스코드.java (-d이거엔 앞 뒤로 띄어씅기임)

          의미는 패키지 선언 된걸로 디렉토리 만들어줘 라는 뜻

                     -d은 패키지명으로 directory를 만들어라 라는 옵션이다...

 

                     .은 생선된 패키지 안에 bytecode를 배포해줘라는 뜻(클래스파일)

 

클래스파일 만드는 도스창 화면이다

패키지 컴파일 된 bytecode( .class파일) 실행하는법

가장 외부에 존재하는 패키지명이 보이는 위치에서 실행해야 한다

(bytecode보이는 위치가아니)

 

실행 안되는 예

실행할려면 

java 패키지명.bytecode 명

 

우리는 java.co.sist.TestPack로 하면됨

 

가장 외부로 나온 day0722디렉토리에서 실행되는 걸 볼수있다.

 

 

ECLIPSE-> 대표적인 java IDE

IDE (Integrated Development Environment):  통합개발환경

    코딩,디버깅,배포를 한번에 할 수 있는 툴

개발 directory 구성

worksapce(최상위 폴더) - project(개별 어플리캐이션,여러개 당연히 존재하겠지) -bin

                                                                                                                                 -src -package(필요한만큼 생성)

패키지 안에 소스코드 작성

project가 웺사이트 하나라고 생각

소스코드를 만들고 저장하면 컴파일이 자동으로 실행되고 소스코드가 있는 패키지가  bin directory에 자동으로 생성되고

bytecode가 배포된다.

 

진행순서

 

 

이클립스 복붙 단축 알트 누르고 우 ㅣ아

 

한줄 아래로 더쓰기 알트 컨트

 

한줄 지우기 컨트롤 d

 

문자열 누르고 컨트롤 쉬프트 x -> 모두 대문자, y는 소문자

 

컨트롤 쉬프트 c 주석처리

 

실수로 파일 지우면 컨트롤 z

 

컨트롤 f 소스커드 정리 - 들여쓰기 

 

f2는 클래스명이랑 파일명 일치시키며 바꾸는

 

 

수업 계속

 

5.논리 연산자

 

일반논리: 여러개의 관계연산자를 붙여서 연살 할 때 사용

&&,||

 

비트논리: 비트의 연산(비트논리를 합치거나 분리할 때 사용함)

&(AND): 상위비트와 하위비트 모두 1일때만 1 내림.

|(OR): 상위비트와 하위비트 모두 0일때만 0내림

^(XOR):상위비트와 하위비트 둘 중 하나만 1일때 1내림.

 

 2진수로 바꿔서 계산해보자

&: 

12&6 = 2

 

우선 12는  앞에나왔으니ㅐ 상위비트

0 0 0 0 1 1 0 0

 128    64       32     16      8        4       2        1

 

6 뒤에나왔으니 하위비트

0 0 0 0 0 1 1 0

 128    64       32     16      8        4       2        1

 

0 0 0 0 0 1 0 0

 128    64       32     16      8        4       2        1

 

연산 결과는 4

 

 

20&15를 해보자

 

20

0 0 0 1 0 1 0 0

 128    64       32     16      8        4       2        1

 

15

0 0 0 0 1 1 1 1

 128    64       32     16      8        4       2        1

 

0 0 0 0 0 1 0 0

 128    64       32     16      8        4       2        1

 

4

 

 

 

|(or):

 

12|6 = 2

 

우선 12는  앞에나왔으니 상위비트

0 0 0 0 1 1 0 0

 128    64       32     16      8        4       2        1

 

6 뒤에나왔으니 하위비트

0 0 0 0 0 1 1 0

 128    64       32     16      8        4       2        1

 

0 0 0 0 1 1 1 0

 128    64       32     16      8        4       2        1

 

답은14

 

20|15

 

20

0 0 0 1 0 1 0 0

 128    64       32     16      8        4       2        1

 

15

0 0 0 0 1 1 1 1

 128    64       32     16      8        4       2        1

 

0 0 0 1 1 1 1 1

 128    64       32     16      8        4       2        1

 

답:31

 

xor(^)

12^6 = 2

 

우선 12는  앞에나왔으니 상위비트

0 0 0 0 1 1 0 0

 128    64       32     16      8        4       2        1

 

6 뒤에나왔으니 하위비트

0 0 0 0 0 1 1 0

 128    64       32     16      8        4       2        1

 

0 0 0 0 1 0 1 0

 

 

xor(^)

20^15 = 27

 

우선 20는  앞에나왔으니 상위비트

0 0 0 1 0 1 0 0

 128    64       32     16      8        4       2        1

 

15 뒤에나왔으니 하위비트

0 0 0 0 1 1 1 1

 128    64       32     16      8        4       2        1

 

0 0 0 1 1 0 1 1

 

 

6.삼항 연산자 (조건연산)

? : 

전항 ? 항1 : 항2;

전항은 보통 관계연산자,일반논리 연산자 그러므로 전항은 true or false를 리턴함

항 1, 2 는  보통 변수,상수,연산식이 들어간다.

 

 

수가 음수인지 양수인지 출력하기

int number = 1;

number>=0? "양수" : "음수"
//전항의 연산식이 true면 앞의항(여기선 양수), false면 뒤의항(음수)을 리턴한다

결과는? 양수

 

7.대입연산자

= : 순수대입

+=, -= , *=,/=, %=   순수대입 연산자

<<= , >>= . >>>=  :쉬프트 대입

&=, |=, ^= : 비트논리 대입

 

=   :   기존에 존재하는 값을 새로운 값으로 대체하는 일을 한다.

 

int i = 0;

i = 2024;    // i 는 2024 즉 기존에 할당된 값은 사라지고 새로운 값을 저장함.

i = 1

 

 

순수대입연산자

연산 후 연산결과를 가지고 대상체에 값을 변경하는 일을 한다..

 변수명 연산자 값;

int i = 1;

i +=2; // 이때  i = i +2

 

 

 

int i = 0;

i = 2024;    // i 는 2024 즉 기존에 할당된 값은 사라지고 새로운 값을 저장함.

i = 1

셋은 같은 값을 가짐

 

 

쉬프트 대입

i = 6; 

i<< =3;  i = i<<3;

0000 0110 (6임 이걸 ) 좌로 세칸 민다

== 0011 0000

 

비트논리 대입

 

&=, |=, ^=

 

i =10;

 

i&=12;    둘이 같다  i = i&12;

 

//비트논리 대입 &= , |= , ^=

 

 

 

 

 

 

 

 

main method arguments입력

  • 프로그램을 실행할 때 외부에서 값 넣기
  • 이걸 활용하면 동적인 앱 구현 가능
  • 아규멘터: 입력되는값(문자열로만 입력 가능함)->바깥의 값
  • 파라메터: 값을 받기위한 변수(매개변수)

 

package day0722;

public class Test{

 

public static void main(string[] args){

 

 

      }//main

 

}//class

 

//실행하는법 java 패키지명.bytecode명

//-> java day0722.Test

                  // 이 의미는 java에게 day0722패키지않에 Test클래스의 main method를 호출하여

                  // 그안의 내용을 실행시켜 달라는 의미

                  //메인메소드는 파라메터(매개변수)가 있는데 여기 예시에서는 string[]이다

parameter: 외부에 값을 내부로 전달하기 위한 변수. 값이 밖에있어, 이걸 안으로 가져오는 문지기 느낌

 

java bytecode명 값 값 값 (아규먼트는 여러개 사용 가능, 띄어쓰기로 구분함)

 

arguments: 파라메터로 전달되는 값.

 

 

java day0722.Test 7 22 안녕 금요일입니다

         :여기는 7 , 22 , 안녕 ,금요일입니다  총 4개의 아규먼츠가 사용됨 인덱스가 부여되는데 0부터임

          순서대로 들어옴 여기선 String[] 이니까 문자열 형태로 들어옴

           존재하지 않는 인덱스를 사용하면 자바에선 error 발생

 

 

args[0] + args[1] = ? -> 7 22 나오겠지 문자열이니깐

 

 

String(문자열)에 +연사자를 사용하면 연산이 아니고 그냥 갖다 붙이는거임

 

 

문자열로 숫자로 변환할려면 method를 활용해야함

casting 안됨

 

integer class사용하여 integer class가 제공하는 parseint method를 사용한다.

 

사용법)

 int 변수명 = Integer.ParseInt(문자열);

 

method 는 하는 일이라고 생각하면 쉬움,.