<1교시 자바 start!>
oracle.com 에서 JDK 설치(8버전으로)
이클립스 설치: 자바에 최적화 되어있음 ( 이클립스 이름 변경 - Eclipse 2022-12_SE )
c드라이브에 java 폴더 생성 --> eclipse 저장경로 java 폴더로 설정
이클립스 실행
file-new-java project 생성(폴더)
src 우측 클릭
--> new - package(폴더 안에 "폴더" 생성)
--> new - class( 확장자 만들기) : 대문자로 시작
ㄴ> main 메소드 체크 못했다면 : main + ctrl + 스페이스바 --> 맨위
<2교시>
파일명 이름 앞에 * 적혀있으면 저장안되어있음을 의미
파일명 변경 : 우클릭 - refacter - rename
저장하고 run (재생버튼) 누르기 : ctrl+ F11
실행구문은 main 메소드 안에 넣기
System.out.print(" " ) ; --> 실행구문 자동입력 : syso 입력 + ctrl + 스페이스바
<출력>
1. print : 엔터 없이 그냥 출력
2. println : 엔터 포함해서 출력
3. printf : ( "문자열", 값1, 값2.. ) ; 구조로 사용
메소드와 메소드는 형제개념으로 만들어야함(메소드 안에 메소드 X)
( ㄴ> 전역변수 ./ 지역변수 / 전역변수 경우 --> 지역변수는 해당 X )
한줄 주석 //
영역 주석 /* */ ( ctrl + shift + / )
무조건 먼저 변수로 타입을 선언해야함
1) 타입 선언
--> 정수 형태 : int (숫자형태로만 받음)
--> 실수 형태 : double
--> 문자열 : String " "
--> 문자 : char ' '
2) 변수명
--> 숫자로 시작 X
--> 예약어 금지
--> 대소문자 구분함
<3교시>
변수에 변수 대입 [Ex03.java]
' ' : 문자 --> char 에 적을 때
" " : 문자열
<4교시>
"나는 \"자바\"를 좋아한다." --> 나는 "자바"를 좋아한다. ( 따옴표를 추가하고싶다면 역슬레시 사용)
"a\tb\tc" --> a b c
ㄴ> \t : 탭 만큼 띄워라
"a\tb\tc\nd" --> a b c
d
ㄴ> \n : 엔터해라 = <br>
float(실수)는 F 붙여야함 (사용x)
무한반복되는거 멈출려면 console 창 오른쪽에 정지버튼 누르기
<5교시>
기본타입 : byte < short < int < long < float < double 순임
타입 변환
1. 자동타입변환
--> 큰 타입 = 작은 타입 : 우 -> 좌 대입 일때 발생
--> 실수 타입 = 정수 타입 : 정수가 실수 될 때 발생
--> int(큰) = char(작은) : 유니코드값이 저장
--> byte(작은) = char(큰) : 변환 불가능
2. 강제타입변환 : 큰걸 작은걸로 나눠서 저장
--> 작은 = (작은으로 강제형 변환) 큰
double --> int : int = (int) double "정수로 출력"
int --> char : char = (char) int "문자로 출력"
int --> byte : byte = (byte)int
3. 정수(int) --> 실수 타입으로 변환
double = (double) 정수;
int x = 1;
int y = 2;
1) double result = (double) x / y ;
2) double result = x / (double)y ;
3) double result = (double)x / (double)y ;
4. 문자열(String) 타입 변환
1) String --> int : int = Integer.parseInt( );
2) String --> double : double = Double.parseDouble( );
5. 기본타입 --> 문자열 변환
String = string.valueOf( );
수식 대입하고자 한다면 무조건 타입은 int 이상으로!!!
char = 'A' --> 65
char = 'a' --> 97
<6교시>
System.out.printf( "문자열", 값1, 값2..); 형식으로 구성
ㄴ> 첫번째 속성 "문자열"에 들어가는 값 : 문자열이면 %s / int라면 %d / 실수라면 %f
ㄴ> 문자열 6자리 _ _ _*** 형식을 원한다면 : printf ( %6s, "*" )
scanner 변수
Sca 입력 후 ctrl + 스페이스바 --> import 생성됨
Scanner 변수명 = new Scanner(System.in); 기본 구문
ㄴ> System.in : 매개변수 (키보드 입력값)
ㄴ> new Scaaner : 생성자
숫자 비교 할 때 ==
문자 비교 할 때 ㅁ.equals( " " )
<7교시>
<8교시>
메소드 , 변수명은 무조건 소문자 시작
class 파일명은 대문자로 시작
자바에서는 반복문 할때 무조건 선언 포함시킬 것 (ex) for( int i = 1; i <=10; i++)
Scanner sc = new Scanner(System.in);
String a = sc.nextLine( ); --------> 무조건 문자열로 인식
int b = Integer.parseInt( sc.nextLine( ) ); -------> int 형식으로 인식
Double b = Double.parseDouble( sc.nextLine( ) ); --------> double 형식으로 인식
nextLine( ) --> 사용자 입력값 받는 함수
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; 변수 선언부터
//x = 1; 초기화
//int x = 1; 선언 및 초기화
int x = 1;
int y = 2;
int z = x + y;
System.out.println(z);
}
}
package ex02;
public class Ex01 {
public static void main(String[] args) {
String age = "1"; // 정수
// double value; // 실수
int a,b,c;
}
}
package ex02;
public class Ex02 {
public static void main(String[] args) {
int h=3;
int m=5;
System.out.println(h+"시 "+m+"분");
int tm = (h*60) + m;
System.out.println("총 "+tm+"분");
}
}
package ex02;
public class Ex03 {
public static void main(String[] args) {
// 전역변수, 지역변수 차이 알자.
/*
int v1 = 15; // 전역변수
int v2;
if(v1 > 10) { // 전역변수
//int v2;
v2 = v1 - 10; // 5 지역변수
} else {
v2 = 0;
}
int v3 = v1 + v2 + 5; // 전역변수(지역변수이므로 v2 알수없음)
*/
int v1 = 15; // 전역변수
int v2=0; // else 쓰지않는다면 0으로 초기화시켜야함
if(v1 > 10) { // 전역변수
v2 = v1 - 10; // 5 지역변수
}
int v3 = v1 + v2 + 5; // 전역변수(지역변수이므로 v2 알수없음)
}
}
package ex02;
public class Ex04 {
public static void main(String[] args) {
byte a=127; // -128 ~ 0 ~ 127까지
short b=32767; // -32,768 ~ 0 ~ 32,767까지
char c='1'; // 0 ~ 65,535까지 양수값만 or 문자도 가능 --> 작은따옴표로 해야 숫자로 나옴
int d = 1; // 주로 사용!!
long e = 1000000000000000L ; // L 붙이기
System.out.println(d);
}
}
package ex02;
public class Page61 {
public static void main(String[] args) {
byte v1 = -126;
byte v2 = -30;
byte v3 = 0;
byte v4 = 30;
byte v5 = 127;
// byte v6 = 128; 오류 남
// byte sum = v2 + v3; 오류남
byte v6 = -30 + 0;
int sum = v2 + v3; // 규칙 : 변수하나라도 있다면 int 로 받아야함
}
}
package ex02;
public class Page63 {
public static void main(String[] args) {
char v1 = 'A';
char v2 = 'B';
char v3 = '가';
char v4 = '나';
//int v5=65;
// int v5='A' // 유니코드( 아스키코드 )
int v6=v1;
//char v6 = (char)((int)v1 + 1); // char(65+1) = char(66) = B
System.out.println(v1); // A
System.out.println((int)v1); // 65
//System.out.println(v5); //65
//System.out.println((char)v5); // A
System.out.println(v6); // 65
}
}
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 : 탭 영역, \n : 엔터
System.out.println(str+"\n");
System.out.println(str2);
}
}
package ex02;
public class Page66 {
public static void main(String[] args) {
// 실수
float a = 0.1234526789f;
double b = 0.123456789; // 사용!!
if(a == b) {
System.out.println("값이 같다");
} else {
System.out.println("값이 다르다"); // 다르다고 나옴
}
}
}
package ex02;
public class Page69 {
public static void main(String[] args) {
boolean stop = true; // 전역변수
while(stop) {
System.out.println("한번만 실행");
stop = false; // 지역변수
}
}
}
package ex02;
public class Page73 {
public static void main(String[] args) {
byte a= 10;
byte b = a; // 가능
// byte b = a + 1 ; // 오류남
//int b = a; 가능 (int 안에 작은 byte 를 넣음 : 자동형 변환)
int c = 10;
byte d = (byte)c; // 강제성 변환(큰 int를 작은 byte로)
////////////////////////////////////////////////////////
int i = 33;
// char j = i; 오류(char < int 이므로 강제변환 해야함)
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;
/////page80/////////////////////////////////////////////////////
int xx = 10;
int yy = 4;
int zz = xx / yy;
double zzz = xx / yy; // 소수점을 원한다면 둘중 하나라도 (double)변환 해줘야함
System.out.println(zz); // 2
System.out.println(zzz); // 2.0
/////page81 11~16/////////////////////////////////////////////////////
char cv1 = 'A';
char cv2 = 1;
char cv3 = (char)((int)cv1 + cv2);
////page81 18~20/////////////////////////////////////////////////////
int iv = 10;
double iv2 = iv / 4.0; // int iv2 = iv / 4; (둘중에 하나를 int 처리)
}
}
package ex02;
public class Page83 {
public static void main(String[] args) {
String str = "10";
int a = Integer.parseInt(str); // str 을 int형태로 변경 (정수인 경우)
short b = Short.parseShort(str);
byte c = Byte.parseByte(str);
float d = Float.parseFloat(str);
double e = Double.parseDouble(str); // str을 double 형태로 변경 (실수인 경우)
// int result = str + 10;
int result = a + 10; // 20
}
}
package ex02;
public class Page90 {
public static void main(String[] args) {
// System.out.printf("문자열", 값1, 값2..);
String name = "홍길동";
int age = 22;
System.out.printf("이름: " + name + " 나이: " + age);
System.out.println(); // <br> 역할
System.out.printf("이름: %s 나이: %d", name, age); // 문자열은 %s int는 %d
System.out.println();
//System.out.printf(("이름: %1$s 나이: %2$d", name, age); //1$ : 1번째 값
}
}
package ex02;
import java.util.Scanner;
public class Page95 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // console 에 입력한 값을
System.out.print("키보드 입력: ");
String str = sc.nextLine(); // 받아서
System.out.println(str); // 다시 출력
}
}
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(); // q가 나올때까지 반복하여 입력값 받음
if(str.equals("q")) {
System.out.println("종료"); // q가 나왔다면 "종료" 출력하고 while문 빠져나옴
break;
}
}
}
}
package ex02;
public class Q07 {
public static void main(String[] args) {
int x = 5;
int y = 2;
double result = x / (double)y; // 정수를 실수로 변환
System.out.println(result); // 2.5
}
}
package ex02;
public class Q08 {
public static void main(String[] args) {
double v1 = 3.5;
double v2 = 2.7;
//int result = (int)v1 + (int)v2; // 3 + 2 = 5
int result = (int)(v1 + v2); // (int) 6.2 = 6
System.out.println(result);
}
}
package ex02;
public class Q09 {
public static void main(String[] args) {
// result = 9가 되도록
long v1 = 2L;
float v2 = 1.8f;
double v3 = 2.5;
String v4 = "3.9";
int result = ((int)(v1 + v2 + v3))+(int)Double.parseDouble(v4);
// (int)6.3 + 3 = 6 + 3 = 9
// int result1 = (int)Double.parseDouble(v4); // 3(실수를 정수로)
System.out.println(result);
}
}
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("전화: %s-%s-%s", tel1, tel2, tel3);
}
}
package ex02;
import java.util.Scanner;
public class Q002 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 입력값은 무조건 문자열임
System.out.print("첫번째 수: ");
String str1 = sc.nextLine();
System.out.print("두번째 수: ");
String str2 = sc.nextLine();
int num1 = Integer.parseInt(str1); // 문자열을 정수로 변환
int num2 = Integer.parseInt(str2);
int result = num1 + num2;
System.out.println("덧셈 결과: " + result);
}
}
package ex02;
import java.util.Scanner;
public class Q003 {
public static void main(String[] args) {
System.out.println("[필수 정보 입력]");
Scanner sc = new Scanner(System.in);
System.out.print("1. 이름: "); // 1. 이름: 적히고 바로 옆에
String str1 = sc.nextLine(); // 입력값 적고
System.out.print("2. 주민번호 앞 6자리: ");
String str2 = sc.nextLine();
System.out.print("3. 전화번호: ");
String str3 = sc.nextLine();
System.out.println();
System.out.println("[입력한 내용]");
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
}
}
package ex02;
import java.util.Scanner;
public class Q004 {
public static void main(String[] args) {
// 두개의 숫자를 받아 사칙연산의 결과를 출력하시오.
/*
// int로 했을 때 문제점 : 나누기에서 소수점이 안나옴
System.out.println("[사칙연산]");
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 수: ");
String num1 = sc.nextLine();
System.out.print("두번째 수: ");
String num2 = sc.nextLine();
System.out.println();
System.out.println("[답안지]");
System.out.println("더하기: " + (Integer.parseInt(num1) + Integer.parseInt(num2)));
System.out.println("빼기: " + (Integer.parseInt(num1) - Integer.parseInt(num2)));
System.out.println("곱하기: " + (Integer.parseInt(num1) * Integer.parseInt(num2)));
System.out.println("나누기: " + (Integer.parseInt(num1) / Integer.parseInt(num2)));
*/
System.out.println("[사칙연산]");
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 수: ");
Double num1 = Double.parseDouble(sc.nextLine());
System.out.print("두번째 수: ");
Double num2 = Double.parseDouble(sc.nextLine());
System.out.println();
System.out.println("[답안지]");
System.out.println("더하기: " + (num1+num2));
System.out.println("빼기: " + (num1-num2));
System.out.println("곱하기: " + (num1*num2));
System.out.println("나누기: " + (num1/num2));
}
}
package ex02;
import java.util.Scanner;
public class Q005 {
public static void main(String[] args) {
// 키보드 입력 받아 피라미드를 구현하시오.(왼쪽정렬)
Scanner sc = new Scanner(System.in);
System.out.println("[피라미드 만들기]");
System.out.print("몇 층? ");
int tr = Integer.parseInt(sc.nextLine());
System.out.println();
System.out.println("[완성본]");
//System.out.println(); 피라미드 생성
for(int i=1; i<=tr; i++) { //층
for(int j=1; j<=i; j++ ) { // 방
System.out.print("*");
}
System.out.println();
}
}
}
'JAVA > jsp' 카테고리의 다른 글
230113_추상클래스, 인터페이스(jsp 시작) (0) | 2023.01.13 |
---|---|
230112_상속, 오버라이딩, 다형성 (0) | 2023.01.12 |
230111_멤버(필,생,메), 오버로딩, 접근제한자 (0) | 2023.01.11 |
230110_참조, 배열, 객체, 필드 (0) | 2023.01.10 |
230109_삼항연산자, 조건문, 반복문,은행 (0) | 2023.01.09 |