본문 바로가기

Programming/JAVA

(5)
클래스 기초 클래스 = 구조체 + 함수 클래스를 간단하게 말하자면 저렇게도 말할수있지 않을까 한다. 클래스는 객체이고 객체지향이며 생성자, 소멸자를 포함하고 있으...... 물론 그렇지만 간단하게 얘기하자면 저렇다는 것이다. 클래스에는 구조체처럼 여러타입의 여러개의 변수를 클래스라는 범위안에 넣을수 있다. 그리고 그안에 있는 변수를 자유롭게 접근할수 있는 클래스안의 함수를 매소드(method)라고 한다. public class Dog{ public int age; public int getAge(){ return age; } } 위는 아주 간단한 클래스이다. Dog 라는 이름의 클래스이며 int형의 age라는 변수가 있으며 getAge() 라는 메소드가 포함되어있다. getAge는 단순히 age를 리턴하는 메소드이다..
데이터 타입 ※ 기본 데이터 타입 정수형 실수형 불형 1 byte byte boolean 2 byte short, char 4 byte int float 8 byte long double ※ 애매할수 있는 데이터를 표현하는 방법 10 : int 10L, 10l : long 3.14 : double 3.14F, 3.14f : float 3.14D, 3.14d : double 'A' : char "ABC" : String 0xA : 16진수 (앞에 0x 를 붙인다) 0123 : 8진수 (앞에 0을 붙인다)
키보드 입력 - 문자열, 숫자 키보드로 입력받는 방법이다. System.in.read(); 이걸로 가능할줄 알았다.. 이건 한문자 밖에 안되더라;;;; 이걸 프로그램 다 완성하고 알았다...;; 그래서 찾은것이 다음과 같이 버퍼, 스트림 객체를 사용하는것이다. String data = null; BufferedReader inBuff = new BufferedReader(new InputStreamReader(System.in)); data = inBuff.readLine(); 이렇게 읽으면 결과가 data안에 문자열로 저장된다. 문자열로 쓰고싶으면 그대로 쓰면되고... 숫자로 쓰고싶으면 data = Integer.parseInt(inBuff.readLine()); 이렇게 바꿔주면 된다. 어떻게 동작되는지도 모르고 막 썼다 -_-; ..
소수점 표시 float형에서 System.out.print 로 출력할 경우 소수점아래가 꽤 많이 나온다. 이걸 줄이는 방법이 다음과 같다. import java.text.NumberFormat; 이건 c의 include랑 비슷한것임 실행코드는 아래와 같음 NumberFormat nf = NumberFormat.getInstance(); // 객체 인스턴스생성 nf.setMaximumFractionDigits(1); // 최대 소수점 자리수 nf.setMinimumFractionDigits(1); // 최소 소수점 자리수 System.out.print(nf.format(std[0].getAverage())); // 위에 설정한 소수점 포맷으로 적용해서 출력 처음에 이걸 검색해서 찾았는데도.. 잘못썼었다. nf.setM..
배열 선언 오늘 처음으로 자바로 뭔가를 만들어 봤음;; 만들다가 조금 힘들었던 부분중 하나가 배열 ㅋㅋ int[] a = new int[10]; a라는 이름으로 크기가 10인 배열을 선언하는 문장이다. 다른 타입도 똑같이 해주면 된다. 이건 금방 찾아서 했는데... 문제는 객체 배열이었다.. 객체도 위와 같은 방법으로 student[] std = new student[10]; 이렇게 하면 컴파일시 아무 문제도 없다. 하지만... 사용할때 std[1].name = "ABC"; 이렇게 할경우에도 컴파일시 아무 문제가 없다. 실행하면... 오류가 뜬다.. NULL 어쩌고 저쩌고 하는건데... 이것 때문에 엄청 헤맸다;; 결론은 std에 student 공간만 10개 만들었지.. 메모리(?)가 할당안된거 같다 해결방법은 사..