728x90
반응형

1) 배열 응용 - 메인 메서드의 매개변수 전달(명령창에서의 실행 명령)

 

더보기

package sec03;

public class MainArgumentDemo {
                  public static void main(String[] args) {
                                  if (args.length == 2) {
                                                   int i = Integer.parseInt(args[1]);
                                                   nPrintln(args[0], i);
                                   } else
                                                   System.out.println("어이쿠!");
                    }

                     public static void nPrintln(String s, int n) {
                                     for (int i = 0; i < n; i++)
                                                     System.out.println(s);
                     }
}

원래는 어이쿠!가 나왔는데, 안녕! 안녕! 안녕! 이 나오기 위해서 변경해줘야 하는 부분이 있다.

다음의 과정을 해줘야하는데,

 

1. [Run] -> [Run Configurations] 을 선택 한 후

2. [Arguments]를 클릭하고

3. [Program arguments]에 안녕! 3이라는 인수를 입력하여야 한다 

**뛰어쓰기 올바르지 않으면 실행결과가 바뀌지 않으므로 정확히 입력해야한다~~ 

 

< 최종결과 >

 

2) 가변 개수 인수 

 

- JDK 5부터는 메서드에도 데이터 타입이 같은 가변 개수(variable length)의 인수를 전달 가능

 ex) 데이터 타입 ...(가변 개수 데이터 타입을 나타낸다) 변수

- 한 개의 가변 개수 매개변수만 사용 가능하며 가변 개수 매개변수는 마지막에 위치

- 가변 개수 인수를 가진 메서드를 호출하면 내부적으로 배열을 생성하여 처리

 

더보기

package sec03;

public class VarArgsDemo {
                     public static void main(String[] args) {
                                        printSum(1, 2, 3, 4, 5);
                                        printSum(10, 20, 30);

                      }

                       public static void printSum(int... v) {
                                      int sum = 0;
                                      for (int i : v)
                                                      sum += i;
                                      System.out.println(sum);
                        }
}

< 최종 결과 >

=> 초기값이 없으면 바로 메인으로 넘어간다. for문을 통해서 i의 값을 합해서 저장하므로 답은 15, 60

 

3) 객체의 배열

 

- 객체 배열은 객체를 참조하는 주소를 원소로 구성

ex) Ball 클래스의 객체로 구성된 배열을 선언하고 초기화

      Ball [ ] balls = new Ball[5]; => 5개의 Ball 객체를 참조할 변수를 준비  

- 생성자를 호출하여 Ball 객체를 생성해야 함

 

4) 열거 타입

4-1) 필요성

 

- 제한된 수의 일이나 사건 등에 대하여 숫자로 표현

  • 각 숫자에 대하여 부여된 의미를 개발자가 숙지 => 일이나 사건에 대한 경우의 수가 많다면 개발자 관점에서 불편
  • 부여되지 않은 의미 없는 숫자 => 컴파일러는 알 수 없다.
  • 출력 값이 의미 없는 숫자로 표현

- 제한된 사건에 대하여 숫자 대신에 상수를 정의해서 부여 : 숫자에 부여된 의미를 개발자가 알 수 있지만, 여전히 나머지 문제가 미결

- 자바 5부터 열거 타입을 제공

ex)

package sec04;

public class ConstantDemo {
    public static void main(String[] args) {
        final int MALE = 0;
        final int FEMALE = 1;
        final int SOUTH = 1;
        int gender = FEMALE;
        if (gender == MALE)
            System.out.println(MALE + "은(는) 병역 의무가 있다.");
        else
            System.out.println(FEMALE + "은(는) 병역 의무가 없다.");

        if (gender == SOUTH)
            System.out.println(SOUTH + "은(는) 누구?");
        gender = 5;
    }
}

< 최종 결과 >

여기서 1은 남성 혹은 여성을 의미하는 단어가 아니라 숫자가 출력됨

4-2) 열거 타입과 응용

 

- 열거 타입 : 서로 연관된 사건들을 모아 상수로 정의한 java.lang.Enum 클래스의 자식 클래스

- 선언 : enum 열거타입이름 { 상수목록 }

ex) enum Gender {MALE, FEMALE} - enum :열거 타입을 정의하기 위한 키워드 / Gender : 열거 타입 이름 /

      MALE, FEMALE : 상수 목록

-  일종의 클래스 타입인 열거 타입도 생성자, 필드 및 메서드를 가질 수 있다.

- 열거 타입 상수는 생성자에 의한 인스턴스이다.- 이때 생성자, 필드 및 메서드와 열거 타입 상수를 구분하기 위해서 뒤에 반드시 (;) 를 추가해야한다.

 

++ 특수문자 원주율 쓰는 법

 

[ㅎ]을 누른 후 한자를 누르면 특수문자표가 나오는데 주르륵 내리면 <<<<  π >>>>> 가 있습니다 !!!

3.14로 적어도 되겠지만 파이 기호로 써야할 일도 있으니까 참고하세여~~ 

728x90
반응형
728x90
반응형

오늘은 1교시부터 갑자기 쪽지 시험 아닌 쪽지 시험을 쳤는데..

구글링을 하거나 챗 지피티를 하거나 뭐든 사용해서 교수님이 내주신 예제 문제 5가지를 푸는 거였습니다.

파이썬, 자바 뭐든 사용해도 좋다고 해서 조금 더 아는 자바를 선택하고 구글링과 저의 조그만 지식으로 해결해보았습니다.

더보기

  예제는 아래와 같습니다. 💥💥💥💥💥

1. 1~10까지의 숫자 더해서 출력하기

2. 1~100까지의 숫자 중 짝수만 출력하기

3. 랜덤 숫자 중에 골라서 소수의 갯수를 카운트하기

4. 랜덤 숫자 입력하여 피보나치 수열을 작성하기

5. 10진수를 넣었을 때 2진수로 표현하고, 우측 쉬프트 1번 하기

1) 1~10까지의 숫자 더해서 출력하기 

   

public class exam {

      public static void main(String[] args) {

             int i = 1;

              // 합계를 담을 변수

              int sum = 0;

              while (i <= 10) {

                     // 합계 변수에 i를 누적시킨다.

                     sum = sum + i;

                      // sum +=i;로도 쓸 수 있다.

                      i++;

               }

               System.out.println("1부터 10까지의 합은 " + sum + "입니다.");

        }

}

=> while 반복문을 사용하여 1부터 10까지의 수를 반복하여 실행하고 sum 변수에 이를 더하여 합계를 출력하였다.

1부터 10까지의 합은 55입니다.

 

2) 1~100까지의 숫자 중 짝수만 출력하기

 

public class exam2 {

       public static void main(String[] args) {

              int i = 0;

               // 100까지 이므로 i<=100까지로 설정

               // 짝수만 출력되게 해야하므로 i=i+2로 2씩 증가

                for (i = 2; i <= 100; i = i + 2) {

                      // 화면 출력부

                       if (i <= 100)

                          System.out.println(i + " ");

                }

        }

}

=> for 반복문을 사용하여 100까지의 숫자 중에 짝수의 값을 반복하여 실행하고 그대로 출력하였다.

print를 사용하면 한줄에 다 표현해주고, println을 사용하면 한줄에 하나씩만 출력한다.

2

4

6

8

...

 

3) 랜덤 숫자 중에 골라서 소수의 갯수를 카운트하기

import java.util.Scanner;

public class exan3_2 {

       public static void main(String[] args) {

               System.out.println("입력된 숫자까지의 소수 구하기");

               System.out.print("입력 : ");

                int inNum = 0;

                Scanner scan = new Scanner(System.in);

                inNum = scan.nextInt();

                // 소수 개수 저장할 변수 초기화

                int count = 0;

                // ------------------------------

                // 입력된 숫자까지의 소수 구하기

                // ------------------------------

                 for (int i = 2; i <= inNum; ++i) {

                      for (int j = 2; j <= i; ++j) { // j가 i까지 반복되도록 수정

                           if (i % j == 0) {

                               if (i == j) {

                                  System.out.print(i + " "); // 개행이 아닌 공백으로 수정

                                   count++; // 소수를 찾았으므로 count 증가

                               } else {

                                    break;

                               }

                            }

                        }

                      }

                      System.out.printf("\n1부터 %d까지의 소수 개수는 %d개 입니다.", inNum, count); 

         }

}

=> 입력하게 만들기 위해서 Scanner 생성, 2이상부터 소수이므로 초기값은 2!! for 반복문을 통하여 숫자는 inNum과 count에 저장, 처음에는 입력한 숫자에 대한 소수의 인수를 구하는것인 줄 알았는데 소수의 개수를 구하는 것이었다.

입력된 숫자까지의 소수 구하기

입력 : 45

2 3 5 7 11 13 17 19 23 29 31 37 41 43

1부터 45까지의 소수 개수는 14개 입니다.

4) 랜덤 숫자 입력하여 피보나치 수열을 작성하기

 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class exam4 {

        public static void main(String[] args) {
               Scanner scan = new Scanner(System.in);
                ArrayList<Integer> Fibonacci = new ArrayList<>(Arrays.asList(0, 1));

                int inputData, m, n, i = 0;

                while (true) {
                      System.out.println("양의 정수를 입력하시오:");
                      inputData = scan.nextInt();

                      if (inputData > 0) {
                          break;
                       } else {
                             System.out.println("잘못된 정수를 입력하셨습니다. 다시 입력하세요.\n");
                       }
                }
                while (true) {
                      m = Fibonacci.get(i);
                      n = Fibonacci.get(i + 1);

                      if (m + n > inputData) {
                          break;
                      } else {
                           Fibonacci.add(m + n);
                            i++;
                      }
             }

            System.out.println(String.format("%d 까지의 피보나치 수열은 다음과 같습니다.\n", inputData) + Fibonacci);
      }
}

 

=> 피보 나치 수열은 앞의 두값을 더해서 나온 값이 다음 값이 되는 수열이다.  

양의 정수를 입력하시오:

4

4 까지의 피보나치 수열은 다음과 같습니다.

[0, 1, 1, 2, 3]

5) 10진수를 넣었을 때 2진수로 표현하고, 우측 쉬프트 1번 하기

 

import java.util.Scanner;

public class exam5 {

        public static void main(String[] args) {

               Scanner scanner = new Scanner(System.in);

                // 10진수 입력 받기

                System.out.print("10진수를 입력하세요: ");

                int decimal = scanner.nextInt();

                 // 10진수를 2진수로 변환하여 출력

                 System.out.printf("%d의 2진수 표현: %s\n", decimal, Integer.toBinaryString(decimal));

                  // 우측으로 1번 시프트하여 출력

                  int shifted = decimal >> 1;

                  System.out.printf("%d을 우측으로 1번 시프트한 결과: %d\n", decimal, shifted);

      }

}

=> 2진수로 표현하기 위해 : 계속 나누어줌 - %2 / 우측으로 1번 시프트한 결과 - int shifted = decimal >>1; 로 표현

728x90
반응형
728x90
반응형

오늘 정처기 공부하다가 알게된 개념 먼저 적어보자면...

 

1) 크로스 플랫폼 : 특정 소스를 플랫폼에 묶이지 않고 자유롭게 사용할 수 있도록 서포트 하는 역할을 합니다.

ex) Flutter는 크로스 플랫폼으로서 Android, iOS 두 모바일 플랫폼에서 모두 동작합니다.

장점으로는 동일한 코드로 서비스를 개발함으로서 유지 보수 및 기느 개발 인력을 효율적으로 활용 가능한 것👍 이 사용하는 가장 큰 이유이다.

 

2) DRM(디지털 저작권 관리) 구성요소와 기술 요소(정처기 자주 출제된 문제)💥💥💥

 

- 디지털 저작권 관리의 의미 : 저작권자가 배포한 디지털 콘텐츠가 저작권자의 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술

 

- 구성 요소

  1. 클리어링 하우스(Clearing House) : 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 관리 등을 수행하는 곳
  2. 콘텐츠 제공자(Contents Provider) : 콘텐츠를 제공하는 저작권자
  3. 패키저(Packger) : 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
  4. 콘텐츠 분배자(Contents Distributor) : 암호화된 콘텐츠를 유통하는 곳이나 사람
  5. 콘텐츠 소비자(Customer) : 콘텐츠를 구매해서 사용하는 주체
  6. DRM 컨트롤러(DRM Controller) : 배포된 콘텐츠의 이용 권한을 통제하는 프로그램
  7. 보안 컨테이너(Security Container) : 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

- 기술요소

  1. 암호화(Encryption) : 콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술
  2. 키 관리(key Management) : 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술
  3. 암호화 파일 생성(Pakager) : 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
  4. 식별 기술(identification) : 콘텐츠에 대한 식별 체계 표현 기술
  5. 저작권 표현(Right Expression) : 라이선스의 내용 표현 기술
  6. 정책 관리(Policy Management) : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
  7. 크랙 방지(Tamper Resistance) : 크랙에 의한 콘텐츠 사용 방지 기술
  8. 인정(Authentication) : 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술

다음으로 자바 기초 강의들은걸 요약하면...

 

1) 데이터 타입 - 데이터의 크기

 

컴퓨타에서 가장 작은 단위 : bit (컴퓨터는 0과 1로 나타낸다는) 

이 bit가 8개 모이면 1 byte가 된다.  8bit = 1byte (우리가 실생활에서 이야기 한다면 10mm가 1cm가 된다는 느낌으로 볼 수 있다 //  데이터 타입에서는 8bit가 1byte로 된다는 것과 그 이후로는 1024를 곱할 때마다 단위가 바뀐다는 것이 제일 중요)

8bit = 1 byte

1024 byte = 1 kilobyte

1024 kilobyte = 1 megabyte

1024 megabyte = 1 gigabyte

1024 gigabyte = 1 terabyte

1024 terabyte = 1 petabyte

1024 petabyte = 1 exabyte

1024 exabyte = 1 zetabyte

 

teratabyte까지는 일상생활에서 많이 쓰지만  petabyte, exabyte, zetabyte는 특수한 산업에서 사용하는 경우가 많다.

 

2) 데이터 타입 - 데이터 타입의 비교

 

2-1) 정수형 (정수형을 사용할때는 보통의 수를 포함하는 int를 사용, 처리속도가 빠름)

데이터 타입 메모리의 크기 표현 가능 범위
byte 1 byte -128 ~ 127
short 2 byte -32,768 ~ 32,767
int 4 byte -2,147,483,648 ~ 2,147,483,647
long 8 byte -9,273,372,036,854,775,808 ~ 9,223,372,036,854,775,807

- byte는 128의 값을 포함하지 않으므로 잘못 사용하여 빨간줄이 끄임 => short, int, long으로 바꾸어 사용해야함

- 데이터가 같을 때는 똑같은 메모리의 양을 사용한다(들어간 숫자의 크기는 다르지만 실질적으로 사용하기 위해 비워둔 자리는 같으므로 메모리의 양은 동일 하다)

ex) long a = 2147483647

      long b = 1

 

- 같은 변수를 저장하고 있더라도 데이터의 타입이 다르면 사용하는 메모리의 양이 다르다(변수에 들어있는 숫자는 같지만 long는 8byte이고 int는 4byte이므로 두배의 양을 사용한다)

ex) int a = 2147483647

      long b = 2147483647

 

2-2) 실수형(대부분 실수형을 사용할 때에는 double을 사용한다)

float 4 byte
double 8 byte

2-3) 문자

char - 2 byte : 모든 유니코드 문자

ex) "AB" : 2+2 : 4 byte

 

3) 상수의 데이터 타입

 

3-1) 상수의 의미

먼저 변수는 변하는 값을 의미하고, 상수는 그 대척점에 있는 것으로 변하지 않는 값을 의미한다.

 

ex) int a = 1;

=> 변수 a 는 대입 연산자(=)에 의해서 1이 되었다. a는 변수이고 1은 상수

 

ex2) 1 = 2;

=> 컴파일이 되지 않는다. 1은 2기 될 수 없으므로... 1은 1이고 2는 2이다. 고유한 값을 가지고 있고, 그 값을 변경 할 수 없는 데이터 타입을 상수라고 한다.

 

3-2) 실수의 표현

 

앞에서 변수를 만들 때 데이터 타입을 지정했었는데, 그것은 변수가 메모리를 얼마나 사용할 것인가를 지정하는 의미를 갖는데, 상수에도 데이터 타입이 있어 코드의 오류가 발생한다.

 

 오류 발생의 예시

ex) int a = 2.2; => 2.2는 실수이므로 정수 타입의 변수 a에 저장하려고 했기 때문에 오류가 발생했다.(=상수에도 데이터 타입이 존재한다)

     float a = 2.2; 역시 에러가 나오고 float a = 2.2F; 혹은 double a = 2.2;를 사용하여야 한다.

정확히 이해하지는 못했지만 실수의 부분에서는 double을 사용하라는 걸로..

      

 

728x90
반응형
728x90
반응형

\ : 역슬러쉬 (w모양)

\n : 다음줄에 출력(줄바꿈)

더보기

1) 정수와 실수 & 문자열

실수 : double      ex) 1.1(소수점이 있으면)

정수 : int

문자열 : String

 

String first(변수 선언)

first = "coding" (변수 할당)

* Striing을 int나 double로 바꾸면 에러 생김 🤣

 String first = "coding"(위에 두줄을 한줄로)

package java0317;

public class StringDemo {

      public static void main(String[] args) {

            String a, b;

            a = "coding";

            b = "everbody";

            System.out.println(a + b);

       }

}

결과는 (+는 자료의 연결 역할)

codingeverbody

2) 변수 사용의 이유 : 재활용성을 높이기 위해서

 

ex) 변수 사용 안했을 때,

  •  System.out.println(100+10);
  •  System.out.println((100+10) / 10);
  • System.out.println(((100+10) / 10) - 10);
  • System.out.println((((100+10) / 10) - 10) * 10);

 

 ex2) 변수 사용 했을 때,👍👍👍

     int a = 100;

  • System.out.println(a+10);
  • System.out.println((a+10) / 10);
  • System.out.println(((a+10) / 10) - 10);
  • System.out.println((((a+10) / 10) - 10) * 10);

* 고정적인 수를 제외한 것을 변수로 놓지 않았을 때는 코드를 다시 짜야하는

재활용성이 낮으므로 가변적인 것은 변수로 설정하는 것이 좋다.🙌

 

 

3) 주석(comment) : 로직에 대한 설명이나 코드를 비활성화 할 때 사용한다.

주석은 프로그래밍적으로 해석되지 않는다.  (주석 표현하기 : //)

주석을 여러줄로 적을 떄,

/*

 a= ~~~~

 b= ~~~~

System. ~~~

*/

 

4) 세미콜론(;) : 문장의 끝을 의미한다. 

  • 자바에서는 문장의 끝에 세미콜론을 사용하지 않으면 컴파일 에러가 발생한다.
  • 세미콜론을 이용하면 여러개의 문장을 한 줄에 표현할 수 있다.

ex) int a = 10=; double b = 10.1;

728x90
반응형
728x90
반응형

1. 객체지향 ?

- 개념 : 소프트웨어 객체는 현실 세계의 객체를 필드와 메서드로 모델링한 것

소프트웨어 객체는 필드(Field)로 정의하고, 동작은 메서드(Method)로 정의

필드는 객체 내분에 선언된 변수를 의미하고, 메서드는 객체 내부에 정의된 동작

 

- 프로그래밍 : 소프트웨어의 규모가 커지면서 동작과 분리되어 전 과정에서 서로 복잡하게 얽혀 있는 데이터를 사용했기 때문에 절파 지향 프로그래밍 방식의 한계로 생성

절차 지향 프로그램은 추후 변경하거나 확장하기도 어려움

현실세계를 객체 단위로 프로그래밍하며, 객체는 필드와 메서드르 하나로 묶어 표현

 

- 특징(정보처리기사 문제로도 자주 출제됨!!)

1. 캡슐화(정보은닉) : 관련된 필드와 메서드를 하나의 캡슐처럼 포장해 세부 내용을 외부에서 알 수 없도록 감추는 것

2. 상속 : 자녀가 부모 재산을 상속받아 사용하듯이 상위 객체를 상속받은 하위 객체가 상위 객체의 메서드와 필드를 사용하는 것

3. 다형성 : 대입되는 객체에 따라서 메서드를 다르게 동작하도록 구현하는 기술, 실행 도중 동일한 이름의 다양한 구현체 중에서 메서드를 선택 가능(다양성과는 다름)

4. 추상화 : 현실 세계의 객체에서 불필요한 속성을 제거하고 중요한 정보만 클래스로 표현하는 일종의 모델링 기법

 

더보기

- 클래스 선언

class 클래스 이름 {       => 클래스를 선언하기 위한 키워드

  // 필드                         => 객체의 속성을 나타낸다

  // 메서드                     => 객체의 동작을 나타낸다

 

ex)

public class Ball {

   double radius = 2.0;

   double getVolume() {

      return 4 / 3 * 3.14 * radius * radius * radius;

    }

}

 

public : 클래스 접근 권한으로 누구나 사용할 수 있다

class : 클래스 키워드

Ball : 클래스 이름으로 소스 파일 이름과 동일해야 한다

double radius = 2.0;  : 필드

return 4 / 3 * 3.14 *radius * radius * radius;  =>  메서드 : () 가 들어가면 메서드라고 생각하기

- 객체 생성과 참조 변수

- 한 문장으로 변수 선언과 객체 생성

 클래스 이름 변수 = new 클래스 이름();

  • 생성자 이름은 클래스 이름과 같다
  • 생성자의 반환 타입은 없다
  • 생성자는 new 연산자와 함께 사용하며, 객체를 생성할 때 호출한다
  • 생성자는 오버로딩 할 수 있다.(오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술)

 

- 클래스 선언과 객체 생성 예시 문제 (기초 타입과 참조타입)

package java0316;

public class PhoneDemo {

    public static void main(String[] args) {

       Phone myPhone = new Phone();

       myPhone.model = "갤럭시 S8";

       myPhone.value = 100;

       myPhone.print();

       Phone yourPhone = new Phone();

       yourPhone.model = "G6";

        yourPhone.value = 85;

        yourPhone.print();

     }

}

class Phone {

     String model;

     int value;

     void print() {

            System.out.println(value + "만원 짜리" + model + "스마트폰");

     }

}

결과는 이렇습니다!!

100만원 짜리갤럭시 S8스마트폰

85만원 짜리G6스마트폰

- 필드와 지역 변수의 차이 : 필드는 기본 값이 있지만, 지역 변수는 기본 값이 없어 반드시 초기화(기본값이 0)

필드는 클래스 전체에서 사용할 수 있지만, 지역 변수는 선언된 블록 내부의 선언된 후에서만 사용 가능

필드와 달리 지역 변수는 final로만 지정 가능 (배열에서만 null값을 가짐)

 

- 접근자와 설정자

필요성 : 클래스 내부에 캡슐화된 멤버를 외부에서 사용할 필요

접근자와 설정자

private으로 지정된 필드에 값을 반환하는 접근자와 값을 변경하는 설정자는 공개된 메서드

일반적으로 접근자는 get, 설정자는 set으로 시작하는 이름을 사용

필드 이름을 외부와 차단해서 독립시키기 때문에 필드 이름 변경이나 데이터 검증도 가능

package java0316;

public class CircleDemo2 {

        public static void main(String[] args) {

                Circle1 myCircle = new Circle1();

                myCircle.setRadius(10.0);

                myCircle.show(myCircle.getRadius(), myCircle.findArea());

         }

}

class Circle1 {

        private double radius;

        public double getRadius() {

               return radius;

        }

        public void setRadius(double r) {

               this.radius = r;

         }

         double findArea() {

              return 3.14 * radius * radius;

         }

         void show(double x, double y) {

               System.out.printf("반지름 = %.1f, 넓이 = %.1f\n", x, y);

         }

}

결과는 ) 반지름 = 10.0, 넓이 = 314.0

- 디폴트 생성자

  • 모든 클래스는 최소한 하나의 생성자가 있음
  • 만약 생성자를 선언하지 않으면 컴파일러가 자동으로 디폴트 생성자를 추가

 

728x90
반응형
728x90
반응형

프로그래밍 언어란 :  컴퓨터와 인간 사이를 연결할 수 있는 매개체이며 컴퓨터에 작업을 시키기 위한 도구

- 기계어인 저급 언어부터 자연어에 가까운 고급 언어까지 다양

- 보통 프로그래밍 언어라고 하면 고급 언어를 의미하는데 C, C++, Java ...

- 고급 언어로 작성한 소스 코드는 컴파일러라는 시스템 소프트웨어를 이용해 먼저 기계어로 구성된 실행 코드로 변환

 

1. java의 특징

- 단순하다

- 객체 지향 언어이다

- 함수형 코딩을 지원한다

- 츨랫폼 독립적이다

- 분산 처리를 지원한다

- 안전하다

- 이식성이 좋다

 

2. 활용 분야

- 웹 애플리케이션은 물론 CRM, ERP, SCM 등 기업용 애플리케이션

- 빅데이터, 클라우드, 소셜, 모바일, 사물인터넷 등 혁신 기술에서 커넥티드 카, 스마트폰 및 비디오  게임까지 일상생활과 업무 환경 전반에 밀접하게 연관

- 심지어 전 세계 해양 정보 수집, 인간 두뇌와 근골격계 연구 등에도 다양하게 활용

 

3. java 시작하기 (자바, 이클립스 설치, 프로젝트 생성, 클래스 생성 순)

자바 설치 -> 이클립스 설치 -> [File] -> [New] -> [Java Project] -> 프로젝트 이름 작성 -> 새로 작성된 프로젝트 오론손 마우스 클릭후 [New] -> [Class] 선택하면 코딩 준비 끝 !!

 

4. 저장하기

 저장은 [ctrl] + s 하거나 디스크 아이콘 누르기~~

 

5. 실행하기

실행은 [ctrl] + [F11]

실행은 단축기 보다는 Refactor 밑에 있는 화살표 누르는게 빠르다!!!

 

 

728x90
반응형
728x90
반응형

1)  2~100까지의 소수 구하기 

# 2~100 사이의 모든 소수 구하기
num = 2
count = 0  # 소수의 개수를 세어줄 변수
while num <= 100:
    i = 2  # 2 ~ num 까지 증가할 변수
    while num % i:  # 나누어질 떄까지 반복
        i += 1      # 1증가

    if i == num:  # 나누어진 수가 자기 자신이면 소수
        print('{0:5}'.format(num), end='')
        count += 1
        if not count % 10:  # 개수가 10의 배수면 줄바꿈
            print()
    num += 1  # 100까지 증가
 
-> vscode에 이대로 누르고 실행하면 (=F5)
=>
 2    3    5    7   11   13   17   19   23   29
   31   37   41   43   47   53   59   61   67   71
   73   79   83   89   97
PS C:\Users\user\Desktop\chosuhyeon\school class\python\GOGODAN>
 
이렇게 나옵니다~~~ 
 
* 같은 열끼리 정확하게 적어야 코드 실행됨(클론 코딩하다가 자주 실수하는 요인 중 하나, 처음에 이해해서 혼자 적으려 하다가 계속 오류떠서 보니까 열이 조금 다르게 되어있었음)
* # : 주석 (코딩에 들어가지 않는 내용, 설명을 위해 들어감)
 
 

2) 2-9단까지의 구구단 만들기

print("구구단을 출력합니다.\n")
for x in range(2,10):
    print("------[" + str(x) + "단]------")
    for y in range(1,10):
        print(x, "x", y, "=", x*y)

-> vscode에 이대로 누르고 실행하면 (=F5)

=>


------[2단]------
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
------[3단]------
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
------[4단]------
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
------[5단]------
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
------[6단]------
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
------[7단]------
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
------[8단]------
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
------[9단]------
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

* 한줄씩 출력하고 싶으면 for y in range(1,10):이 식에 F9 누른다음에 실행(F5)한 후, F10을 계속해서 눌러주면

빨간 점이 생기면서 4~5번을 왔다 갔다하면서

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6

주르륵 나옵니다~~~

 

파이썬에 대한 기본 지식도 없이 바로 코딩을 실행하려고 하니까 이해한다고 어려움이 많았는데 무작정 한번 시도해보는 것도 재미는 있었네요. 언젠가 기초적인 지식들을 배워서 주제를 던지면 바로 코딩 해보는 실력 가지길 바라면서 오늘은 안녕 :)

728x90
반응형

+ Recent posts