Java 기본형.참조형 타입/명명규칙/형변환/Scanner

조수경·2021년 9월 12일
0

JAVA

목록 보기
1/26
post-thumbnail
package a_variable;//클래스의 위치

import java.util.Scanner;//ctrl+shift+o

public class Variable {//클래스: 데이터와 기능으로 구성되어 있음

	public static void main(String[] args) {    
        //메서드: 명령문의 집합
//main메서드는 프로그램의 시작과 끝
//주석: 프로그램 코드로 인식하지 않는 문장(주로 코드를 설명하는데 사용)
	    //한줄 주석 : ctrl + shift +c 여러줄도 블럭 지정 후 가능
	    /*범위주석: ctrl + shift + /(해제:\)*/
	    //프로그래밍: 컴퓨터에게 일을 시키기 위해 일하는 과정을 만드는 것. 
		//재료: 데이터와 조작
        
        데이터
		1.기본형
		-숫자
		-문자
		-논리(참거짓)
		
		2. 참조형(데이터가 위치한 주소를 저장)
		-배열(형태가 같은 여러개의 데이터를 묶어서 사용)
		-클래스(형태가 다른 여거개의 데이터와 기능을 묶어서 사용)

데이터 타입+(구분가능한)이름을 알려주면 컴퓨터가 메모리에 공간을 만들어줌

기본형 타입(암기)

	-정수: byte(1), short(2), *int(4/약20억), long(8)
	-실수: float(4/7자리), *double(8/15자리)
	-문자: char(2)
	-논리: boolean(1)
	

참조형 타입

	-문자열: String(4)
	

명명규칙(암기)

	-영문자 대소문자, 한글, 숫자, 특수문자 (_,$)만 사용 가능
	-숫자로 시작 안됨
    -예약어 사용 못함: 자바에서 이미 사용하고 있는것은 사용 못함
	-[낙타식 표기법 사용: 앞글자를 대문자로 사용.(mySampleVariable)]
	-[클래스명의 첫글자는 대문자로 한다.]
    
    

변수 선언은 변수를 만드는 것(값을 저장한 공간 만들기)

int x;   //;(세미콜론) : 문장의 마침표
long y;
float z;
char abc; 
boolean boolean$;
String name123;

//스트링은 예약어가 아니라 클래스 이름이고 중복되지 않게 이름을 지어줘야 함

//9가지 타입을 모두 사용해 9개의 변수를 선언해주세용
byte a;
int b;
long c;
float d;
char e;
boolean f;
double g;
short h;
String name234;//글자갯수 상관 없음

초기화: 처음 값 저장
=(대입연산자) : 오른쪽의 값을 왼쪽의 변수에 저장
변수를 선언한 이후에는 변수의 이름만 가지고 변수를 사용

   x=10;   //타입에 맞는 값 저장
   y=20L;   //접미사 L을 붙여야 롱타입이 됨
   z=3.14f;   //접미사f가 붙어야 float타입
   abc='가';   //따옴표안에 반드시 한글자 넣기. 따옴표로 감싸야지만 문자임
   boolean$= true;// true, false
   name123= "가나다라 abcd 1234"; 

//쌍따옴표로 문자열을 표현함, 한글자 여러글자 아무것도 작성 안하는것 모두 가능

일반적으로 선언과 초기화를 한문장으로함

	```

int m=10;
m=20; //다른 값 저장

**형변환** : 타입을 바꾸는것 
표현범위가 작은 타입에서 큰 타입으로 형변환은 생략할 수 있다.(자동으로 되는것)
큰타입에서 작은 타입으로 갈때는 데이터가 손실 될 수 있다. 
정수보다 실수가 큰 값이다(float과 double이 long보다 큼)
기본형 타입 끼리만 형변환 가능(참조형-기본형 안됨)
char와 short는 값의 크기가 같아도 범위가 달라서 형변환 해야함
char ch ='a';// 문자로 표현되지만 실제로 숫자가 들어있어서 다른 값과 형변환이 가능함


                int _int=10;
		long _long=20;
		float _float=0.122f;
		double _double=0.444;

                _int=(int)_long;     //long타입이 int로 바뀜
		_long=_int;    
           //표현범위가 작은 타입에서 큰 타입으로 형변환은 생략할 수 있다.

        
     Q. 변수 3개를 선언해 변수의 타입과 다른 타입의 값으로 초기화 해주세요
		
	            _int=(int)_long;
		    _long=_int;
		    _float=(float)_double;
	            _double=_float; 
       -> 선언해줘야 에러가 일어나지 않음

            char ch ='a';
            
   // 문자로 표현되지만 실제로 숫자가 들어있어서 다른 값과 형변환이 가능함
	    short sh =10;
	    ch=(char)sh;
	    sh=(short)ch;   
        
        
콘솔에 출력
System.out.print("출력"); //타입 상관없이 출력 가능
System.out.println("출력후 줄바꿈");
System.out.printf("출력 포맷 지정");

출력출력후 줄바꿈
출력 포맷 지정

#### 실행 단축키: ctrl+F11
탈출문자: 역슬레시
System.out.println("탭은\t4칸에 맞춰 띄워줍니다.");
System.out.println("즐바꿈을\n.");
System.out.println("\"쌍따옴표를 넣어준다.\"");
System.out.println("\\역슬래시 넣어준다.");

탭은	4칸에 맞춰 띄워줍니다.
즐바꿈을
.
"쌍따옴표를 넣어준다."
\역슬래시 넣어준다.


* 입력받기위한 클래스
**Scanner sc=new Scanner(System.in); **// Scanner는 참조형 타입 클래스임
//오류가 뜨는 것은 위치를 알려주지 않았기 때문이다. 임포트로 위치를 알려줘야함
(맨 위에 패키지 밑에 적어줌)

import java.util.Scanner; 

//ctrl+shift+o 임포트 선언 단축키

**sc.nextLine();** 입력을 받아주는 것이며 ()가 있으면 메서드 이다. 
사용자가 입력하기를 기다리고 사용자가 입력하고 엔터를 치면 결과값이 나옴


#### - 문자를 입력하고 싶을때

            System.out.println("아무거나 입력해주세요>");
	        **String str = sc.nextLine(); //문자열 입력 받기**
 	        System.out.println("입력받은 내용:" + str);

아무거나 입력해주세요>
dndhdkf
입력받은 내용:dndhdkf

#### - 숫자를 입력하고 싶을때

            System.out.println("숫자를 입력해주세요>");
	        int num = sc.nextInt(); //정수 입력 받기
	        System.out.println("입력받은 숫자: "+ num);

숫자를 입력해주세요>
222
입력받은 숫자: 222

하지만 에러가 날수 있어서 Integer.parseInt을 붙혀야 한다.
        System.out.println("숫자를 입력해주세요>");
#### int num = Integer.parseInt(sc.nextLine()); 
       //int타입으로 형변환하는 것
	    System.out.println("입력받은 숫자:"+num);
	
숫자를 입력해주세요>
10
입력받은 숫자:10

자신의 이름을 저장할 변수를 선언하고 스캐너를 사용해 이름을 저장해주세용
        System.out.println("이름을 입력해주세요>");
	    String myName = sc.nextLine();
	    
자신의 나이를 저장할 변수를 선언하고 스캐너를 사용해 나이를 저장해주세요
       System.out.println("나이를 입력해주세요>");
	   int myAge = Integer.parseInt(sc.nextLine());//문자를 int로 형변환 하는 것

//이름과 나이를 출력해주세요
System.out.println("이름:"+myName+ "/나이:"+myAge);

이름을 입력해주세요>
조수경
나이을 입력해주세요>
23
이름:조수경/나이:23


Q. 다음과 같은 프로그램을 만들어주세요
 ==========회원가입========
 아이디>admin
 비밀번호(4자리숫자)>1234
 이름>홍길동
 나이>99
 키>185.5
 =========================   -> 입력 받는것
 회원가입 완료!!
 =======내 정보=============
 아이디: admin
 비밀번호: 1234
 이름:홍길동
 나이:99세
 키:185.5cm              -> 출력 받는것
 
  Scanner sc = new Scanner(System.in);
  
  System.out.println("========회원가입========");
  
  System.out.println("아이디>");
  String id = sc.nextLine();
  
  System.out.println("비밀번호>");
  int num = Integer.parseInt(sc.nextLine());
  
  System.out.println("이름");
  String name = sc.nextLine();
  
  System.out.println("나이");
  int age = Integer.parseInt(sc.nextLine());
  
  System.out.println("키");
  double hight = Double.parseDouble(sc.nextLine());
  System.out.println("=====================");
  System.out.println("회원가입 완료!");
  
  System.out.println("=======내 정보=========");
  System.out.println("아이디:"+id);
  System.out.println("비밀번호:"+num);
  System.out.println("이름:"+name);
  System.out.println("나이:"+age);
  System.out.println("키:"+hight);
		
 

profile
신입 개발자 입니다!!!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN