본문 바로가기

Java 기본 개념

자바를 잡아라 제 1장 - 아무 것도 아닌 것은 없다

728x90

[ 2022년 9월 20일 화요일 ]

Hello Java
: 시작은 미미해도 그 끝은 창대하리

  • Java란 무엇인가
객체지향언어

플랫폼 독립적

멀티스레드 지원

멀티스레드 지원
간단한 코드

뛰어난 보안성

고성능

모듈화


객체 지향 프로그래밍 ex) 자동차를 만들 때, 부품 별로 미리 만들어 두고, 나중에 한번에 조립하는 형태

장점 단점
협업 가능

유지 보수가 쉬움

개발기간이 짧고 비용도 적게 듦

한 부분이 고장나도 다른 부분 동작 가능
메모리의 사용이 좀 더 많음

불필요한 부분까지 프로그램에 포함

대규모의 프로그램에 적합

  • Java에서의 첫 걸음
public class HelloJava {
	
	public static void main(String[] args) {
		
		/*
		 * 여러줄 주석
		 */
		
		System.out.print("hello world\n"); // \n은 줄바꿈
	
	}

  • 주석문 : 코드를 입력한 후 그 코드를 알기 쉽게 첨언하는 기능

< 종류 >

1. 한줄 주석(//): 주석 내용이 한줄일 때 사용

2. 여러 줄 주석(/* ~~~~~ */): 여러 줄의 주석이 필요할 때 사용

SystemOut
: 결과에 도달하라
public class SystemOut {
	public static void main(String[] args) 

		System.out.print("1");
		System.out.print("\n");
		System.out.print(1);
		System.out.print("\n");

		//sysout이라고 적고 ctrl + space 출력문을 자동생성
		System.out.println("반갑습니다"); // println: 자동 줄바꿈
		System.out.println("감사합니다"); 


		//형식을 지정하는 출력문 printf
		//문자형식을 미리 지정하고, 필요한 출력값을 지정하는 형태
        
		/*
		 * 서식문자
		 * %s - 문자열을 입력받음
		 * %d - 정수를 입력받음
		 * %f - 실수를 입력받음 (%.2f - 소수부 자릿수를 의미)
		 * \t - tab키(8칸 띄어쓰기)
		 */ 

		System.out.printf("안녕하세요. 제 이름은 %s 입니다.\n", "홍길동");
		System.out.printf("오늘은 %d월 %d일 입니다.\n", 9, 20);
		System.out.printf("파이의 값은 %.2f입니다.\n", 3.14); //소수부 기본 여섯자리
		System.out.printf("%d x %d = %d \t%d x %d = %d", 2, 1, 2, 2, 2, 4);


	}
}

  • 출력문

System.out.print( ) : [기본 출력문]
System.out.println( ) : "sysout"작성 후 ctrl + space 누르면 출력문 자동생성 [기본 출력문 + 자동 줄바꿈]
System.out.printf( ) : 형식을 지정하는력문 ( 문자형식을 미리 지정하고, 필요한 출력값을 지정하는 형태 )

System.out.printf("%d + %d = %d  2, 1, 3);
System.out.printf("나는 오늘부터 %s을 시작하게 되었어.", "프로그래밍");

  • 단축키 ( 빠른 코드 작성 )
잘라내기 ctrl + x
빠른 드래그 shift +end / shift + home
정렬키 ctrl + a ( 전체선택 ) ≫ ctrl + i (정렬)
행 삭제 ctrl + d
행 복사 ctrl + alt + 방향키
코드 이동 alt + 방향키
빠른 주석 ctrl + /

Variable
: 너의 가치는 무엇인가

public class Variable {

	
	public static void main(String[] args) {
		
		int num; //선언
		num = 10; //초기화 과정
		System.out.println(num);
		
		//선언과 초기화를 동시에
		int num2 = 20;
		System.out.println(num2);
		
		//변수의 값을 변경
		num1 = 100;
		System.out.println(num2);
		
		
		//변수에는 다른 변수의 값을 넣을 수도 있음
		int result = num2;
		System.out.println(result);
		
		//변수에는 연산의 결과도 저장할 수 있음
		int result2 = num + num2;
		System.out.println(result2);
		
		//문자열을 저장
		String str = "10";
		
		//변수는 타입이 다르면 바로 저장할 수 없음
		int num3 = str;
			
	}
}

  • 변수 데이터 타입

정수형 데이터 타입 (4가지) 실수형 데이터 타입 (2가지)
byte, short, int, long 키워드(예약어)를 사용하여 선언

long형을 지정하려면 할당할 숫자 뒤에 "L"을 붙여줘야 함

float, double 키워드를 사용

float형을 지정하려면 숫자 뒤에 "F"를 붙여줘야 함

실수형 표현은 소수점 표현방식인 10진수형 표현방식과,

지수 형식으로 나타내는 과학기술용 표기법이 사용

논리형 데이터 타입 문자형 데이터 타입

논리형은 다른 데이터 타입과 서로 형 변환(type casting) X

** C언어에서처럼 숫자 값을 논리 값으로 해석하여,

0을 false로 다루고 0이 아닌 값을 true로 해석 >> 허용 X



단일 문자는 char형으로 표현

2^16의 범위 내에서 부호가 없는 16비트(2byte)
숫자를 사용하여 유니코드 문자를 표현

홑 따옴표 (' ')안에 넣어야 함

---------------------------------------------------------------

문자열을 표현할 때는 String을 사용

String은 기본 데이터형 X

문자열 값은 겹 따옴표(" ")안에 넣어야 함

  • 변수 선언 방법
[ 데이터 유형 ] [ 변수 식별자 이름 ]

ex ) int phoneNumber, char name

  • 변수 사용 범위

선언과 초기화 과정이 있음

선언된 블록 내에서만 사용

블록이 끝나면 메모리상에서 제거

Indentifier
: 개성을 드러내라

public class Identifier {
	
	public static void main(String[] args) {
		
		int age = 10; //정확한 표현
		int Age = 20;
		int agE = 30;
		
		System.out.println(age);
		System.out.println(Age);
		System.out.println(agE);
		
		
		int phonenumber = 4;
		int phoneNumber = 5; //정확한 표현
		
		System.out.println(phonenumber);
		System.out.println(phoneNumber);
	
		int num1 = 1;
		int num2 = 2;
		
		
//		int class = 10;
//		int public = 20; 키워드로는 이름 x
		
	}

}


  • 식별자 생성 규칙 ( 반드시 )

대,소문자를 구분하고 길이 제한 X

문자와 숫자, 밑줄(_)를 포함

문자, 밑줄, 달러기호로 시작 O

숫자로 시작 불가능

공백 포함할 수 X

키워드는 식별자로 사용 X

  • 식별자 이름 규칙 ( 개발자들의 약속 )

클래스/인터페이스 이름 규칙 변수 이름 규칙

명사나 형용사를 서술적으로 연결하여 사용

첫글자는 대문자로 표기

연결된 단어의 첫 글자도 대문자로 표기

ex) HelloWorld, MyCalculator

명사적 의미를 갖게 만듦

첫글자는 소문자, 연결 단어의 첫글자는 대문자로 표기

ex) customerAge, phoneNumber

메서드 이름 규칙 상수 이름 규칙

동사적 의미

첫글자는 소문자, 연결 단어의 첫글자는 대문자로 표기

메서드 이름 뒤에는 반드시 한 쌍의 괄호"()"가 뒤따름

일반적으로 메서드 이름에는 "_"를 사용하지 X

ex) writeView(), join()

단어와 단어 사이는 "_"로 연결

ex) NUMBER_ONE, LOGIN_OK