본문 바로가기

개발

자바 ArrayList - Do it! 자바프로그래밍기초 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공한다. ArrayList 클래스는 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공하는데 사용법을 알아두면 편리하게 사용할 수 있다. 주요 메서드로는 boolean add(E e) : 요소 하나를 배열에 추가한다. E는 요소의 자료형을 의미 int size() : 배열에 추가된 요소 전체 개수를 반환 E get(int index) : 배열의 index 위치에 있는 요소 값을 반환한다. E remove(int index) : 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다. boolean isEmpty() : 배열이 비어있는지 확인한다. ArrayList는 java.util 패키지에 구현되어.. 더보기
자바 배열 복사, arraycopy - Do it! 자바프로그래밍기초 배열 복사는 기존 배열과 자료형 및 배열 크기가 똑같은 배열을 새로 만들거나 배열의 모든 요소에 자료가 꽉차서 더 큰 배열을 만들어줄 때 사용한다. 배열을 복사하는 방법은 두 가지가 있다. 1. 기존 배열과 배열 길이가 같거나 더 긴 배열을 만들고 for문을 사용하여 각 요소 값을 반복해서 복사하는 방법 2. System.arraycopy(src, srcPos, dest, destPos, length) 메서드를 사용하는 방법이다. src : 복사할 배열 이름 srcPos : 복사할 배열의 첫번째 위치 dest : 복사해서 붙여 넣을 대상 배열 이름 destPos : 복사해서 대상 배열에 붙여 넣기를 시작할 첫 번째 위치 length : src 에서 dest로 자료를 복사할 요소 개수 package arr.. 더보기
자바 static 변수, 클래스 변수- Do it! 자바프로그래밍기초 static 변수란 다른 용어로 '정적 변수'라고도 한다. 다른 멤버 변수처럼 클래스 내부에 선언하고 자료형 앞에 static 예약어를 사용한다. static 변수는 클래스 내부에 선언하지만, 다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아니다. 프로그램이 실행되어 메모리에 올라갔을 때 딱 한번 메모리 공간이 할당된다. 그리고 그 값은 모든 인스턴스가 공유한다. 다시 말하면 static으로 선언한 변수는 인스턴스 생성과 상관없이 먼저 생성되고 그 값을 모든 인스턴스가 공유하게 된다. 이런 이유로 클래스에 기반한 변수라고 해서 '클래스변수'라고도 한다. public class Student { public static int serialNum = 1000; //static 변수는 인스.. 더보기
c언어 동적 메모리 할당하는 이유 프로그램이 실행되려면 메모리가 필요하다. 실행 파일이 메모리에 로드되어야 실행될 수 있고, 또 프로그램에서 선언하는 변수들도 메모리에 할당된다. int a; double b; 컴파일러는 변수들이 값을 제대로 보관하도록 변수 타입에 맞는 크기만큼 메모리를 할당한다. 변수 a는 정수형이므로 4바이트, 변수 b는 실수형이므로 8바이트가 할당된다. 이렇게 미리 필요한 메모리량을 알려주는 할당을 정적할당이라고 한다. 프로그램을 작성할 때 필요한 메모리량을 지정하는 정적할당과는 달리, 실행 중에 필요한만큼 메모리를 할당하는 기법을 동적할당이라고 한다. 메모리를 동적으로 할당하면 메모리 관리에 효율적이라고 하는데, 예를 들어보면 100개의 정보를 저장할 수 있는 정적 메모리 할당을 사용해서 프로그램을 만들면 , 10.. 더보기
c언어 구조체 struct 구조체 포인터 struct pointer - 나도코딩 유튜브 나도코딩 c언어 기초 강의 내용이 포함되어있습니다. 구조체란 한 개 이상의 변수를 묶어 그룹화시키는 사용자 정의 자료형이다. 똑같은 변수를 여러번 사용해야 하는 경우에 효과적으로 사용할 수 있다. 여러개의 변수를 하나로 묶어서 관리할 수 있게 되고, 그룹화할 때 같은 자료형을 가진 변수들을 묶거나, 서로 다른 자료형을 가진 변수들을 묶어서 그룹화할 수도 있다. #include struct GameInfo { char* name; int year; int price; char* company; }; // }구조체별칭; int main(void) { // 구조체 사용 struct GameInfo gameinfo1; gameinfo1.name = "나도게임"; gameinfo1.year = 2017; .. 더보기
c언어 포인터, pointer 프로젝트, 물고기 키우기 - 나도코딩 물고기들이 어항에 있고 어항의 물은 일정 시간마다 계속 줄어든다. 물고기를 선택하면 물이 조금씩 차는데 시간이 지날 수록 물이 줄어드는 속도는 빨라진다. 어항들의 물이 모두 사라지지 않도록 물고기들을 최대한 빨리 선택해라 #include #include int level; int arrayFish[6]; int *cursor; void initData(); void printfFishes(); void decreaseWater(long elapsedTime); //int checkFishAlive(); int main_6_2project(void) { long startTime = 0; // 게임 시작 시간 long totalElapsedTIme = 0; // 총 경과 시간 long prevElapsed.. 더보기