[ 2023. 5. 30 작성]
1. 자바 설치 및 설정
1) 자바 다운로드
오라클 웹사이트 (https://www.oracle.com) 접속 후 상단의 [Product] 메뉴에서 [Java]클릭
우측상단에서 [Download Java]클릭
[windows]-[JDK 설치(8버전)] ※우리나라에선 아직 8버전을 많이 사용함
2) 이클립스 다운로드
이클립스 홈페이지(https://www.eclipse.org ) 접속 후 다운로드
3) c드라이브에 java 폴더 생성 --> eclipse 저장경로 java 폴더로 설정
이클립스 실행
file-new-java project 생성(폴더)
src 우측 클릭
--> new - package(폴더 안에 "폴더" 생성)
--> new - class( 확장자 만들기) : 대문자로 시작
※ main 메소드 체크 못했다면 : main + ctrl + 스페이스바 --> 맨위
파일명 이름 앞에 * 적혀있으면 저장안되어있음을 의미
파일명 변경 : 우클릭 - refacter - rename
console 창 실행 방법: 저장하고 run 누르기 or ctrl+ F11
실행구문은 main 메소드 안에 넣기
System.out.print(" " ) ; --> 실행구문 자동입력 : syso 입력 + ctrl + 스페이스바
메소드 , 변수명은 무조건 소문자 시작
class 파일명은 대문자로 시작
<출력문>
1. print : 엔터 없이 그냥 출력
2. println : 엔터 포함해서 출력
<예시코드>
package ex01;
public class Hello {
public static void main(String[] args) {
System.out.print("hello 안녕!");
System.out.println("hello 안녕!");
System.out.print("hello 안녕!");
int x = 1;
int y = 2;
int z = x + y;
System.out.println(z);
}
}
3. printf : ( "문자열", 값1, 값2.. ) ; 구조로 사용
⇒첫번째 속성 "문자열"에 들어가는 값 : 문자열이면 %s / int라면 %d / 실수라면 %f
⇒ 문자열 6자리 _ _ _*** 형식을 원한다면 : printf ( %6s, "*" )
<예시코드1>
package ex02;
public class Page90 {
public static void main(String[] args) {
String name = "홍길동";
int age = 22;
System.out.printf("이름 :"+name+" 나이 :"+age);
System.out.println();
System.out.printf("이름 :%s 나이 :%d",name,age);
System.out.println();
System.out.printf("이름 :%1$s 나이 :%2$d",name,age);
}
}
<예시코드2>
package ex02;
public class Q001 {
public static void main(String[] args) {
String name = "감자바";
int age = 25;
String tel1 ="010", tel2 = "123", tel3 = "4567";
System.out.println("이름: "+name);
System.out.print("나이: " + age+ "\n");
System.out.printf("전화: %1$s-%2$s-%3$s",tel1,tel2,tel3);
}
}
※ 메소드와 메소드는 형제개념으로 만들어야함(메소드 안에 메소드 X)
( 전역변수 ./ 지역변수 / 전역변수 경우 --> 지역변수는 해당 X )
한줄 주석 //
영역 주석 /* */ ( ctrl + shift + / )
<선언>
무조건 먼저 변수로 타입을 선언해야함
1)타입 종류
크기 ( byte < short < int < long < float < double 순)
<작성법 예시코드>
package ex02;
public class Ex04 {
// 범위를 벗어나면 에러가 난다.
public static void main(String[] args) {
String s = "1"
byte a = 127; //-128 ~ 127
short b = 32767; //-32,768 ~ 32,767
char c = '1'; // 0 ~ 65535
int d = 1;
long e = 10000L; // long은 마지막에 L 안붙이면 에러남
float f = 0.123456789f; // 정밀도가 낮다. // f입력해야 함
double g = 0.123456789; //정밀도가 높다
}
}
※ 타입 선언
⇒정수 형태 : int (숫자형태로만 받음)
⇒ 실수 형태 : double (0.00타입)
⇒ 문자열 : String " "
⇒ 문자 : char ' '
※변수명
⇒ 숫자로 시작 X
⇒ 예약어 금지(abstract, boolean. if, break 등)
⇒ 대소문자 구분함
변수에 변수 대입 [Ex03.java]
' ' (홀 따옴표): 문자 → char 에 적을 때
" " (쌍 따옴표): 문자열
<문장안 강조표현, 띄어쓰기, 엔터 등>
<예시코드>
package ex02;
public class Page64 {
public static void main(String[] args) {
char v1 = 'A'; // 문자
String v2 = "A"; // 문자열
String str = "나는 \"자바\"를 좋아한다."; // 따옴표를 추가하고 싶다면 역슬래쉬 사용
String str2 = "a\tb\tc\nd"; // \t:탭 만큼 띄워라
System.out.print(str+"\n"); // \n : 엔터
System.out.println(str2);
}
}
타입 변환
1. 자동타입변환
⇒ 큰 타입 = 작은 타입 : 우 → 좌 대입 일때 발생
⇒실수 타입 = 정수 타입 : 정수가 실수 될 때 발생
⇒ int(큰) = char(작은) : 유니코드값이 저장
⇒ byte(작은) = char(큰) : 변환 불가능
2. 강제타입변환 : 큰걸 작은걸로 나눠서 저장
⇒ 작은 = (작은으로 강제형 변환) 큰
<타입변환 예시코드>
package ex02;
public class Page73 {
public static void main(String[] args) {
byte a = 10;
int b = a; // 자동 형 변환
////////////
int c = 10;
byte d = (byte)c; //강제 형 변환
////////////
int i = 33;
char j = (char)i;
System.err.println(j); // 첫번째 출력문
/////////////////////////
int x = 5;
int y = 6;
short z = 7;
int result = x + y;
//short result1 = x + z; // 수식 사용시 기본으로 받아얄 할 최소단위 타입은 int
float aa = 1.0f + 2.0f;
//page 80
int xx = 10;
int yy = 4;
int zz = xx / yy;
double zzz = xx / (double)yy; // 분모나 분자 둘 중 최소 하나라도 double로 받아야 소수점까지 출력된다.
System.out.println(zz); // 두번째 출력문
System.out.println(zzz); // 3번째 출력문
//page 81
char cv1 = 'A';
char cv2 = 1;
char cv3 = (char)((int)cv1 + cv2);
System.out.println(cv3); //4번째 출력문
int iv = 10;
double iv2 = iv / 4.0;
}
}
※ 문자를 숫자로 변환
<예시코드>
package ex02;
public class Page83 {
public static void main(String[] args) {
String str = "10";
int a = Integer.parseInt(str);
int b = Short.parseShort(str);
int c = Byte.parseByte(str);
float d = Float.parseFloat(str);
double e = Double.parseDouble(str);
int result = a + 10;
}
}
※ 정수(int) →실수 타입으로 변환
double = (double) 정수;
<예시코드>
package ex02;
public class Q07 {
public static void main(String[] args) {
int x = 5;
int y = 2;
double result = (double)x / y;
System.out.println(result);
}
}
※ 기본타입 --> 문자열 변환
String = string.valueOf( );
※ 수식 대입하고자 한다면 무조건 타입은 int 이상으로 한다
※ scanner 변수
Sca 입력 후 ctrl + 스페이스바 --> import 생성됨
Scanner 변수명 = new Scanner(System.in); 기본 구문
⇒ System.in : 매개변수 (키보드 입력값)
⇒ new Scaaner : 생성자
<예시코드>
package ex02;
import java.util.Scanner; // scanner 변수를 만들면 자동으로 생성됨
public class Page95 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // scanner 변수 설정
System.out.print("키보드입력");
String str = sc.nextLine();
System.out.println(str);
}
}
※ 아스키코드, 유니코드(자세한 내용은 인터넷 검색)
char = 'A' → 65
char = 'a' → 97
숫자 비교 할 때 ==
문자 비교 할 때 가.equals( " " )
<예시코드1>
package ex02;
import java.util.Scanner;
public class Page96 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str;
while(true) {
System.out.print("입력:");
str = sc.nextLine();
if(str.equals("q")) {
System.out.println("종료");
break;
}
}
}
}
<예시코드2>
package Ex03;
public class Ex01 {
public static void main(String[] args) {
int a = 10;
//a = a*-1;
a = -a;
System.out.println(a);
char c1 = 'A'+1;
char c2 = 'A';
char c3 = (char)(c2+1);
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
int n1 = 10;
int n2 = 10;
if(n1<n2 || n1 ==n2) {
}
////////////
char ch01 = 'a';
char ch02 = 'b';
System.out.println(ch01<ch02); // 아스키 코드로 비교 가능하다.
String str01 = "a";
String str02 = "a";
String str03 = new String("a");
System.out.println(str01==str02);// 문자열은 크기는 비교 불가능하지만, 값이 같은지 다른지는 비교가능하다.
System.out.println(str01.equals(str02));
System.out.println(str01==str03);// 값은 같지만 주소값이 다르다.
System.out.println(str01.equals(str03));
char charCode='A';
if(!(charCode < 48) & !(charCode >57)) {
}
if (charCode >= 48 & charCode <= 57) {
}
}
}
자바에서는 반복문 할때 무조건 선언 포함시킬 것 (ex) for( int i = 1; i <=10; i++)
<예시코드>
package ex02;
import java.util.Scanner;
public class Q005 {
public static void main(String[] args) {
//키보드 입력받아 피라미드를 구현하시오.
Scanner a = new Scanner(System.in);
System.out.print("수입력: ");
int num = Integer.parseInt(a.nextLine());
for(int i=0;i<=num;i++) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
}
}
※ 문자와 숫자가 섞여있을때 변환 문제
package ex02;
public class Q09 {
public static void main(String[] args) {
long var1 = 2L;
float var2 = 1.8f;
double var3 = 2.5;
String var4 = "3.9";
int result = (int)var1 + (int)((double)var2 + var3)+(int)Double.parseDouble(var4);
System.out.println(result);
}
}
var1은 int 타입으로 받았으므로 2가 된다.
var2+var3는 double과 int로 받았으므로 4.3 → 4가 된다.
var4는 3.9라는 문자를 숫자로 변환했으며 int는 소수점을 버리기때문에 3이 된다.
따라서 총합은 9가 된다.
'JAVA Programming > Java' 카테고리의 다른 글
[JAVA] 문자열 메서드 (0) | 2024.07.02 |
---|---|
[JAVA] final필드와 상수 (0) | 2024.07.02 |
[JAVA] 삼항연산자 (0) | 2024.06.28 |
[JAVA] 자료형과 연산자 (0) | 2024.06.26 |
자바 설치 및 기본 세팅 (0) | 2024.06.25 |