[JAVA] JAVA
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);
}
}