자바
-
(JAVA) 생성자(Constructor) & SetterJAVA/컨셉 , 예제 2018. 8. 24. 13:42
클래스의 객체는 다양한 멤버 필드를 갖고 있을 것이다. 학생의 경우를 예로 들면 이름, 나이, 대학교, 전공 등을 멤버 필드로 둘 수 있다. public class Student { private String name; private int age; private String uni; private String major; // 다른 클래스에서 private 멤버변수에 무분별한 접근 및 제어 // 방지하기 위해 setter 함수에 특정 조건을 걸도록 함. public void setName(String name){ if(name.length() == 3) this.name = name; } public void setAge(int age){ this.age = age; } public void setUn..
-
(JAVA) 자바 문자열 출력 방법.JAVA/컨셉 , 예제 2018. 8. 24. 13:39
보통 문자열 출력을 위해 사용했던 메소드 sysout. System.out.println이지만 이클립스 및 STS에서 sysout만 치고 Ctrl+s 누르면 자동완성 해주기 때문에 sysout만을 사용한다. System.out.println("Hi");문자열에 숫자를 넣어서 출력하고 싶다면 + 연산자를 사용해야 하는데 그것이 많게 되면 +를 입력하는 것도 번거롭게 느껴진다. 이러한 문제를 String 클래스의 메소드를 이용해 해결할 수 있다. 포맷은 C언어의 printf와 거의 같다. double avr = 10.0; String msg = String.format("average : %.2f", avr); System.out.println(msg);다음과 같이 사용하면 일일이 문자열과 숫자를 더해 형변..
-
(JAVA) 자바 foreach카테고리 없음 2018. 8. 24. 13:34
학부수준에서는 자바, c, c++ 등에서 for문을 굉장히 많이 접할 것이다. 실무에서도 for를 가장 보편적으로 쓸 것이라 생각했지만 foreach를 오히려 더 많이 사용한다고 한다. 배열의 모든 원소를 순차로 탐색하는 경우 그 속도가 월등히 빠르기 때문이라고 한다. 사용법 : for(dataType dataName : dataList){ dataList의 값을 dataName으로 접근해 제어 가능 } int[] scores = {1,2,3,4,5,6,7,8,9,10}; int sum = 0; for(int i : scores){ System.out.println(i); }scores 배열의 인덱스 값을 순차대로 i에 넣고 원하는대로 제어. 배열 모든 원소 순차탐색하는 경우에 사용 가능
-
(JAVA) 자바 스캐너(Scanner)로 파일 내용 읽어오기JAVA/컨셉 , 예제 2018. 8. 24. 13:33
스캐너는 표준 입력(Stdin, 키보드)을 받을 수 있도록 돕는 객체이다. String을 비롯한 primitive 타입들로 변환해 받을 수 있도록 메소드들을 제공하고 있다. 주요 메소드와 특징 간단하게 정리하자면 next()문자열 반환함수. 공백(space)를 만나면 종료된다.nextLine()문자열 반환함수. 개행(Enter)를 만나면 종료된다. next()와 달리 띄어쓰기를 할 수 있다.nextInt() int 타입 반환함수. nextDouble()double 타입 반환 함수.package com.naver.cafe.club.biz; import java.util.Scanner; public class ScannerExample { public static void main(String[] args)..
-
(JAVA) 자바 래퍼(Wrapper) 클래스JAVA/컨셉 , 예제 2018. 8. 24. 13:31
개발자의 입장에서 문자열을 숫자로 바꾸어 원하는 연산을 할 수 있도록 가공하는 절차는 필수적이다. 하지만 문자열과 숫자는 데이터 타입이 다르기 때문에 형변환이 필수적이다. 일반적으로 문자열을 특정 토큰에 따라 나누는 split 메소드를 사용한다.다음과 같이 공백을 기준으로 String을 나누어 값을 출력한다. 여기서 모든 값들을 더하고 싶은 경우 어떻게 할까?System.out.println("sum of points : "+ msg[0]+msg[1]+msg[2]);다음과 같이 생각할 수도 있다. 하지만 결과는다음과 같이 50100200이 나온다. 데이터 타입이 문자열이고, 문자열에서 +연산은 단순히 문자를 이어쓰는 것에 불과하다. 산술 연산을 하지 않는다는 말이다. 이를 해결하기 위해 각각의 문자열을 ..
-
(JAVA) 자바 상수 (final) 사용이유와 방법JAVA/컨셉 , 예제 2018. 8. 24. 13:28
3개의 숫자를 입력받아 합계와 평균을 출력하는 프로그램은 다음과 같다. 20번째 줄에서 평균을 구할 때 직접 숫자를 넣어 값을 구하고 있다. 짧은 코드라면 큰 지장이 없겠지만, 코드가 방대해지면 이 3의 의미를 알기 힘들어지고 잘못 수정하는 경우 원하는 결과를 얻지 못할 우려가 있다. 이를 방지하기 위해 3과목의 평균을 구하는 역할만을 한다면 3을 상수로 저장해 이후 수정을 하지 못하도록 final 키워드를 제공하고 있다. import java.util.Scanner; public class Final { void printfSumAndAverage(){ final int CLASS_CNT = 3; Scanner input = new Scanner(System.in); System.out.println(..
-
(JAVA) 자바 형변환 ( Type Casting )JAVA/컨셉 , 예제 2018. 8. 24. 13:27
자바는 숫자를 표기법에 따라 다른 데이터 타입으로 인식한다. int (4 byte) : 10, 20, 30... long(8 byte) : 10L, 20L, 30L... double(8 byte) : 1.2, 10.34, 5.6... float(4 byte) : 1.2F, 10.34F, 5.6F... 10과 10L은 같은 값이지만 데이터의 타입이 달라지기 때문에 취급에 주의를 둬야 한다. long 타입의 변수에 int 타입의 변수를 할당하는 것은 문법적으로 문제가 없지만 int 타입의 변수에 long 타입의 변수를 할당하는 것은 Syntax error가 발생하게 된다. 그 이유에 대해 알아보자. 데이터 타입은 자바에서 매우 중요하다. 변수를 선언한 타입에 맞춰 값을 할당해야 하고, 그렇지 않으면 에러가 ..
-
(JAVA) 자바 변수의 범위(Scope)와 참조 & thisJAVA/컨셉 , 예제 2018. 8. 24. 11:03
자바 클래스에서 변수는 멤버 필드 공간과 메서드 내에서 존재할 수 있다. 또한 변수가 속한 범위 (Scope. { 부터 } 까지 ) 내에서 존재하며 참조 가능하다. 다음 코드를 보자.메인 함수에서 This 클래스 객체를 생성해 fun 함수를 수행한 결과이다. 컴파일러가 num 변수를 찾는 과정에 대해 알아보자. 1. 컴파일러는 num 변수를 해당 변수가 포함된 블럭에서 처음으로 찾는다. 2. fun() 함수 안에 num 변수가 있기 때문에 이를 참조한다. 따라서 200이 출력된다. 만약 fun()에서 num 변수가 없다면 어떻게 될까?1. 컴파일러는 num값을 fun()에서 찾는다. 2. num값이 fun() 내에서 없기 때문에 해당 블럭 바깥 구역인 This 클래스 내에서 num 변수를 찾는다. 3. ..