본문 바로가기

개발자

자바 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 패키지에 구현되어.. 더보기
자바 static 변수, 클래스 변수- Do it! 자바프로그래밍기초 static 변수란 다른 용어로 '정적 변수'라고도 한다. 다른 멤버 변수처럼 클래스 내부에 선언하고 자료형 앞에 static 예약어를 사용한다. static 변수는 클래스 내부에 선언하지만, 다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아니다. 프로그램이 실행되어 메모리에 올라갔을 때 딱 한번 메모리 공간이 할당된다. 그리고 그 값은 모든 인스턴스가 공유한다. 다시 말하면 static으로 선언한 변수는 인스턴스 생성과 상관없이 먼저 생성되고 그 값을 모든 인스턴스가 공유하게 된다. 이런 이유로 클래스에 기반한 변수라고 해서 '클래스변수'라고도 한다. public class Student { public static int serialNum = 1000; //static 변수는 인스.. 더보기
자바 접근제어자, public, private - Do it ! 자바프로그래밍기초 객체 지향 프로그래밍에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 이러한 예약어를 접근 제어자라고 한다. public이라고 선언한 변수나 메서드는 외부 클래스에서 접근이 가능하며 외부 클래스가 사용할 수 있다는 뜻 private으로 선언한 변수나 메서드는 외부 클래스에서 사용할 수 없다. public class Student { int studentID; private String studentName; int grade; String address; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.stude.. 더보기
자바 생성자, 생성자 오버로딩, 참조 자료형 - Do it ! 자바프로그래밍기초 public class Person { String name; float height; float weight; } public class PersonTest { public class void main(String[ ] args) { Person personLee = new Person(); } }​ PersonTest 클래스에서 클래스를 생성할 때 사용하는 Person()같은 함수를 생성자라고 한다. 클래스의 멤버 변수는 메서드에 의해 값이 변경될 수도 있지만, 처음 클래스를 생성할 때 값을 정해야 하는 경우도 있다. 생성자가 하는 일은 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것이다. 위의 Person 클래스를 보면 생성자가 따로 없지만 new Person()을 사용해서 객체를 만들 수.. 더보기
c언어 동적 메모리 할당하는 이유 프로그램이 실행되려면 메모리가 필요하다. 실행 파일이 메모리에 로드되어야 실행될 수 있고, 또 프로그램에서 선언하는 변수들도 메모리에 할당된다. int a; double b; 컴파일러는 변수들이 값을 제대로 보관하도록 변수 타입에 맞는 크기만큼 메모리를 할당한다. 변수 a는 정수형이므로 4바이트, 변수 b는 실수형이므로 8바이트가 할당된다. 이렇게 미리 필요한 메모리량을 알려주는 할당을 정적할당이라고 한다. 프로그램을 작성할 때 필요한 메모리량을 지정하는 정적할당과는 달리, 실행 중에 필요한만큼 메모리를 할당하는 기법을 동적할당이라고 한다. 메모리를 동적으로 할당하면 메모리 관리에 효율적이라고 하는데, 예를 들어보면 100개의 정보를 저장할 수 있는 정적 메모리 할당을 사용해서 프로그램을 만들면 , 10.. 더보기
c언어 구조체 프로젝트 struct project - 나도코딩 유튜브 나도코딩 c언어 기초 강의 내용이 포함되었습니다. #include #include // 5마리의 고양이가 있다 // 아무키나 눌러서 랜덤으로 고양이를 뽑되 // 5마리 모두 다 수집을 해서 열심히 키우면 되는 게임 ! // 중복발생가능 !! // 고양이 // 이름 나이 성격 키우기난이도(레벨) typedef struct { char* name; int age; char* character; int level; }cat; // 현재까지 보유한 고양이 int collection[5] = { 0, }; // 전체 고양이 리스트 cat cats[5]; void initcats(); void printcat(int selected); int main(void) { srand(time(NULL)); init.. 더보기
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언어 다차원배열 multidimensional array 프로젝트 카드뒤집기게임 - 나도코딩 #include #include // 10마리의 서로 다른 동물 (각 카드 2장씩) // 사용자로부터 2개의 입력값을 받아서 같은 동물 찾으면 카드 뒤집기 // 모든 동물 쌍을 찾으면 게임 종료 // 총 실패 횟수 알려주기 int arrayAnimal[4][5]; // 카드 지도 (20장의 카드) void initAnimalArray(); char* strAnimal[10]; // 10개의 공간을 만들고, 공간에 들어갈 데이터는 주소 void shuffleAnimal(); void initAnimalName(); int getEmptyPosition(); int conv_pos_x(int x); int conv_pos_y(int y); void printAnimal(); void printQuestion.. 더보기