목록분류 전체보기 (255)
-
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cJbJsL/btrmEEg2kM5/jkq7KReR2IEz60Bc9JZdhK/img.png)
메서드는 자바에서 정말 중요한 파트입니다. 메서드는 뜻이 행위라고 하는데 예를 이 사진으로 보겠습니다. 커피머신과 손님이라는 클래스를 만들었을 때 손님클래스안에는 커피마시기를 구현하고자 하고 커피머신 클래스에는 커피만들기를 구현하려고 한다고 가정합시다. 이렇게 MethodEx01 내부에 메서드를 만들고 void start(){ } 하게 되면 이 중괄호 내부에 들어가는 코딩 내용들이 start라는 메서드를 실행시켰을 때 나옵니다. 이 start() 메서드를 항상 메모리에 띄우는 방법이 있습니다. 바로 static입니다. 메서드도 이전에 배웠던 것처럼 똑같이 static을 통해 메모리 공간에 띄울 수 있습니다. 이렇게 한 번 입력해볼까요? 같은 클래스 내부니까 클래스는 굳이 안써도 되지만 여기서 더 작성해볼..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bb0Kuw/btrmid6mfb2/896wPrR8zMGYxl67ooXV51/img.png)
# 주소 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.LinkedList; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = scan.nextI..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bB50Tb/btrmgIrlOVN/ez8zad6yQ0s6uCRtyLS8hk/img.png)
자바의 변수에는 일반변수와 레퍼런스변수가있습니다. 일반 변수는 크기가 정해져 있는 것으로서 해석할 수 있습니다. 여기서 num은 int타입으로 main안에 선언했기 때문에 일반변수입니다. 그러나, MyData는 우리가 직접 만든 클래스이기 때문에 자바입장에서는 이것을 직접 실행시켜보지 않는 이상 이 MyData에 대해 모릅니다. 그래서 이렇게 MyData에서 이 d라는 변수를 갖고왔을 때를 레퍼런스변수라고 합니다. 크기가 정해져 있지 않다는 것은 컴파일 시점에 이야기하는 것입니다. 그리고 또 알아야할 것이 있습니다. 나중에 타입 변수라는 것이 나오는데 이 타입 변수를 선언한다는 것은 int num;까지만 썼을 때를 의미합니다. 즉, num에 값을 넣지 않고 num만 선언했기 때문에 이것을 변수를 선언했다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cRO91D/btrmiEg9cB3/7Uj0mMTYQAkBdpMDZITmDK/img.png)
이번 시간에 배울 건 클래스 자료형의 Heap저장에 대해 배울 것입니다. 저번 시간에 배운 이 MyVar의 클래스 자료형은 사실 단점이 있습니다. 만약 나와있는 n1과 c1의 데이터 외에 다른 값을 넣으려면 일일히 값을 바꿔야 한다는 번거스러움이 있습니다. 자 만약 static을 이용했을 때 단점을 정리하겠습니다. 1) 프로그램 시작전 부터 프로그램 종료시까지 존재하기 때문에 메모리 낭비 2) 많은 데이터를 저장하고 싶을 땐 클래스 자료형을 여러 개 만들어야 하는 소모성 이렇게 있을 수 있습니다. 그러므로 우린 Heap을 이용하여 데이터를 정리해보겠습니다. 이 Static이라는 것은 정적인 상태입니다. 항상 메모리에 띄워놓고 미리 정해야하기 때문에 데이터가 많아질수록 과부하가 걸리기 쉬워서 정적인 sta..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bNXg6m/btrmhhfRdik/zVULNGAnyvqRbbnPVDdFaK/img.png)
이전에 배운거 복습해보겠습니다. 이제는 10.8이나 true, 20 의 자료형은 각각 무엇일까요??? - double, boolean, int 타입이 되겠습니다. 그럼 생각할 것이 있습니다. 20도 저장하고 싶고 'A'도 저장할 수 있는 그런 타입이 있지 않을까요?? 결론적으로 그런 자료형은 없습니다. 하지만 방법이 하나 있습니다. 바로 '클래스 자료형'을 이용하는 것입니다. 이처럼 MyVar를 보시면 int타입, char타입 둘 다를 선언할 수 있습니다. 우린 이것을 Beans라고 부릅니다. 그렇다면 이것을 main안에서 출력하려면 어떻게 해야 할까요?? static을 이용하면 정말 편합니다. 이런식으로 .을 이용하여 출력할 수 있습니다. 이 .은 연결 연산자로서 역할을 수행합니다. MyVar안의 n1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SHL1b/btrmgECzB2p/7AiwrnkGq4RkZGKEUIHqX1/img.png)
자바의 자료형은 대표적으로 int, boolean, double, char 가 가장 많이 쓰이는 4가지입니다. 자바를 사용하다 보면 '컴파일한다'는 이야기를 많이 듣게 됩니다. 이는 작성한 자바 클래스 파일을 저장하게 되면 생기는 현상입니다. 컴퓨터에서 자바 클래스를 읽을 수 있게 미리 메모리에 공간을 배정해놓는다고 이해하면 됩니다. 이런 경우를 살펴보겠습니다. b1, b2는 boolean타입이고 n1,d1,c1에 각각 값을 넣었습니다. 그리고 n1은 int타입, d1은 double타입, c1은 char타입을 선언했습니다. 다 작성한 후 ctrl + s를 누르면 이 클래스 파일이 저장됨과 동시에 메모리에 컴파일됩니다. 그리고 이것들을 출력할 수 있는데, System.out.println(인자); 라고 입..