Programming/JAVA

[JAVA] JAVA

Hard_Try 2020. 9. 10. 00:52

JAVA 기본부터

 

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

가장 기본적인 것을 보자.

 

public 은 접근 제어자이다. public은 어디에서나 접근이 가능하다는 것을 의미하고 private는 아무나 접근을 못 하게끔 할 것이다.

class HelloWorld는 HelloWord라는 클래스를 정의해준다. 

public static void main 에서 main은 메소드(함수) 이름을 뜻한다. args라는 문자열 배열을 파라미터로 받는 것을 볼 수 있다. 또한 리턴값이 없으므로 void 자료형을 썼다.

System.out.println 부분은 문자열을 출력해주게끔하는 부분이다.

 

 

변수

- 대소문자 구분 (main, maIn 은 다른 변수)

- 숫자로 시작할 수 없다. (ex. 98jungs)

- 자바의 예약어 사용 불가 (ex. class, public ... )

- 특수 기호 '_', '$' 외 사용 불가

 

public class Hello {
    public static void main(String[] args) {
        int age;
        age = 27;

        int num = 21; // 초기화와 동시에 변수 설정 가능

        // age = 26.6;  // 이미 int형이기 때문에 오류 발생

        age = num;		// 변수에 변수를 집어 넣는 것 가능
        age = age + 1	// 연산도 가능
    }
}

 

 

자료형

  • 정수형 : byte, short, int, long

byte a = 127;

자바에서는 위 처럼 사용시 int를 정수형의 메인으로 사용한다. 즉, 정수를 입력하면 기본적으로 int로 간주한다.

하지만 int의 정수범위를 벗어났을 경우에는 L을 붙여주면된다. (소문자도 되지만 1과의 구분을 위해 L로 쓰자)

 

  • 소수형 : flaot (float f = 3.14f) , double
float f = 3.14f

 

  • 불린 : true, false
boolean myBoolean = true;
myBoolean = false;

 

  • 문자열 : String (")
String a = "Hello, I'm ";
String b = ".";

System.out.print(a);
System.out.print(26);
System.out.println(b);

 

연산자

 

문자열 끼리 덧셈(+) 연산자로 문자열을 연결해줄 수 있다.

 

문자열과 숫자를 더하면 저절로 문자열로 바뀌고, 문자열과 불린을 더하면 불린이 저절로 문자열로 바뀐다.

System.out.println("I am " + 27 + " years old.");
System.out.println("The result is " + false + ".");
I am 27 years old.
The result is false.

 

큰 따옴표를 문자열로 나타내고 싶으면 \" 으로 사용하면 된다. \를 이용하여 문자열 안에 확장된 표현을 하는 문자를 이스케이프 문자라고 한다.

 

Escape Sequence Description
\t
\b 백스페이스
\n 줄 바꿈 (새로운 줄로)
\r 줄 바꿈 (carriage return)
\f 폼 피드
\ 역슬래쉬

 

조건문

 

if (조건부분 1) {
    // 수행 부분 1
} else if (조건 부분 2) {
    // 수행 부분 2
} else if (조건 부분 3) {
    // 수행 부분 3
} else {
    // 수행 부분 4
}

 

switch (grade) {
    case "A+":
    case "A":
    case "B":
        System.out.println("참 잘했어요!");
        break;
    case "C":
    case "D":
        System.out.println("조금만 더 노력해 볼까요?");
        break;
    case "F":
        System.out.println("Fail입니다.");
    default:
        System.out.println("다시 수강해주세요.");
        break;
}
while (조건 부분) {
  수행 부분
}
for (초기화식; 종결 제어식; 증감 제어식) {
  // 수행부분
}

 

배열

 

여기서 파이썬과 C++과 다른 점이 보인다!

int[] intArray = new int[5]; // 크기 5의 빈 배열
int[] intArray = {1, 2, 3, 4, 5};

위 2개는 둘다 5 크기의 배열이 생성된다.

 

int[][] multiArray = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};
int[][] multiArray = new int[3][4];

다중 배열 선언도 가능하다.

 

 

아래는 배열을 활용한 정해진 문자열이 몇 번 반복되는지 구하는 코드

public class Main {
    public static void main(String[] args) {
        String dna = "GATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGTGTGAGCCA"
                   + "CCACGCCCGGCTAATTTTTATTTATTTATTTAAAGACAGAGTCTCACTCT"
                   + "GTCACTCAGGCTAGAGTGCAGTGGCACCATCTCAGCTCACTGCAGCCTTG"
                   + "ACCTCCCTGGGCTCCGGTGATTTCACCCTCCCAAGTAGCTAGGACTACAG"
                   + "GCACATGCCACGACACCCAGCTAATTTTTTATTTTCTGTGAAGTCAAGGT"
                   + "CTTGCTACGTTGCCCATGCTGGTATCAAACCCCTGGGCTCAATCAATCCT"
                   + "TCCACCTCAGCCTCCCCAAGTATTGGGGTTACAGGCATGAGCTACCACAC"
                   + "TCAGCCCTAGCCTACTTGAAACGTGTTCAGAGCATTTAAGTTACCCTACA"
                   + "GTTGGGCAAAGTCATCTAACACAAAGCCCTTTTTATAGTAATAAAATGTT"
                   + "GTATATCTCATGTGATTTATTGAATATTGTTACTGAAAGTGAGAAACAGC"
                   + "ATGGTTGCATGAAAGGAGGCACAGTCGAGCCAGGCACAGCCTGGGCGCAG"
                   + "AGCGAGACTCAAAAAAAGAAAAGGCCAGGCGCACTGGCTCACGCCTGTAA"
                   + "TCCCAGCATTTCGGGAGGCTGAGGCGGGTGGATCACCTGAGGTCAGGAGT"
                   + "TCAAGACCAGCCTAGCCAACATGGTGAAACCCCGTCTCTACTAAAATACA"
                   + "AAAATTAACCGGGCGTGATGGCAGGTGCCTGTAATCCCAGCTACTTGGGA"
                   + "GGCTGAGGCAGGAGAATCGCTTGAACCAGGAGGCGGAGGTTGCAGGGAGC"
                   + "CAAGATGGCGCCACTGCACTCCAGCCTGGGCGATAGAGTGAGACTCCGTC"
                   + "TCAGAAAAAAAAGAAAAGAAACGAGGCACAGTCGCATGCACATGTAGTCC"
                   + "CAGTTACTTGAGAGGCTAAGGCAGGAGGATCTCTTGAGCCCAAGAGTTTG"
                   + "AGTCCAGCCTGAACAACATAGCAAGACATCATCTCTAAAATTTAAAAAAG"
                   + "GGCCGGGCACAGTGGCTCACACCTGTAATCCCAGCACTTTGGGAGGTGGA"
                   + "GGTGGGTAGATCACCTGACGTCAGGAGTTGGAAACCAGCCTGGCTAACAT";
        char[] charArray = dna.toCharArray();
        int tagg = 0, ccag = 0, agcc = 0;
        char[] current = new char[4];
        
        for (int i =0; i< charArray.length - 3; i++){
            
            for (int j = 0; j < current.length; j++) {
                current[j] = charArray[i+j];
            }
                String stringFromCharArr = new String(current);
                
                switch(stringFromCharArr) {
                    case "TAGG":
                        tagg++;
                        break;
                    case "CCAG":
                        ccag++;
                        break;
                    case "AGCC":
                        agcc++;
                        break;
                }
        }
        System.out.println("TAGG: " + tagg);
        System.out.println("CCAG: " + ccag);
        System.out.println("AGCC: " + agcc);
    }
}