Programming83 [Java] 05. static 멤버의 접근 방법과 활용 static 멤버의 접근 방법 1) 클래스 내부에서 자유롭게 접근 2) 클래스 이름으로 접근 3) 객체 이름으로 접근 class AccessWay{ static int num=0; AccessWay(){ incrCnt(); } public void incrCnt() { num++; } } public class ClassVarAccess { public static void main(String[] args) { AccessWay way = new AccessWay(); // 생성자 안에 있는 매서드가 호출됨(num+1) AccessWay.num++; // 클래스명으로 접근(num+1) way.num++; // 객체로 접근(num+1) System.out.println("num = "+AccessWay... 2019. 3. 20. [Java] 04. 접근 권한(Access Authority) 접근 권한(Access Authority) Public: 어디서나 마음대로 접근 호출가능 Protected: 패키지가 동일하거나 다른 패키지라도 상속이면(권한이 있으면) 접근 호출 가능 Default: 동일한 패키지만 접근 호출 가능 Private: 클래스내에서만 접근호출가능 필드의 접근권한 1) 필드는 일반적으로 private으로 설정한다. 2) 대신 getter나 setter매서드를 이용해서 값을 넣거나 가져올 수 있도록 한다. getter나 setter는 일반적으로 default나 public을 준다. 3) setter 매서드에는 들어오는 값을 확인하는 코드를 넣을 수 있기 때문에 직접 필드에 접근하는 것보다 안전성이 높아진다. 매서드의 접근 권한 1) 매서드는 기본적으로 default나 publi.. 2019. 3. 20. [Java] 03. 패키지(Package) package는 class보다 상위 분류 개념이며 동시에 폴더구조이다.class 제작시 별도의 package명을 주지 않으면 default package 소속이 된다.다른 package의 클래스를 사용하고 싶으면 import를 한다. - 단축키 [Ctrl + Shift + o]import 없이 사용할 수 있는 package는 자기자신이 속한 package와 java.lang이다.java에서 별도로 접근제한자(private, protected, public)를 주지 않으면 default(동일 패키지 내에서는 접근이 가능) 접근권한을 갖게된다. → java의 공유성을 강화하는 철학※ C언어에서는 default가 private → 보안성을 강화하는 철학 2019. 3. 20. [Java] 02. 배열의 복사(Arrays.copy) 배열 복사하는 방법 1. HashCode값 복사 (얕은 복사) scores의 해시코드 값이 scores1, scores2에 복사된다. 스택의 같은 공간에 접근함으로 힙에 담겨있는 값을 가져오게 된다. 따라서 기존 배열인 scores가 변경되었을때 이를 복사한 scores1, scores2에서도 변경된 값을 참조하게 된다. int[] scores = {100,85,95,65,75}; int[] scores1 = scores;// 해시코드 값이 복사됨(같은 공간을 참조) int[] scores2 = scores1;// 해시코드 값이 복사됨(같은 공간을 참조) for(int i=0;i 2019. 3. 15. [Java] 01. nextInt(), nextDouble() 뒤에 nextLine() 사용 nextLine() 사용시 주의사항 nextInt(), nextDouble() 같은 메서드를 사용한 이후 String을 입력받기 위해 nextLine()을 사용하면 버퍼에 남아있는 \n(Enter값)을 읽어들이기 때문에 nextLine() 메서드가 바로 리턴해버린다.그러므로 nextLine()을 호출하기 전에 nextLine()을 한번 써주면버퍼에 있는 \n 읽어버리므로 그 다음 문자열이 잘 읽힌다. 수정 전 op = sc.nextLine(); 에서 \n을 읽어들여 연산자가 입력되지 않고 바로 리턴함. Scanner sc = new Scanner(System.in); double num0=0, num1=0, result=0; String op=""; System.out.print("1번째 숫자 입력: ".. 2019. 3. 13. [Java] 00. 조건문, 랜덤 - 다이스게임 import java.util.Random; import java.util.Scanner; public class _03_diceGame { public static void main(String[] args) { System.out.print("1~6 정수를 입력하세요: "); Scanner sc = new Scanner(System.in); int userNum = sc.nextInt(); Random rd = new Random(); int comNum = rd.nextInt(6)+1; //0~5에서 1~6으로 구간조정 String result=""; if(userNum>comNum) result = "You Win"; else if(userNum==comNum) result = "Draw"; el.. 2019. 3. 13. [C#] 주소록 프로젝트 - 클래스 편 주소록 요구사항 이름,전화,주소를 입력/검색/변경/삭제/전체출력 한다. 클래스 정의 1) 시작 클래스2) 주소 클래스(Model) → 데이터 3) 메뉴 클래스(View) → 인터페이스 4) 주소록 관리 클래스(Controller) → 비즈니스 로직## MVC: 일반적인 업무용 프로그램의 정석## 객체화: 다른 클래스의 매서드를 갖다 쓰려면 반드시 객체를 생성해야 한다. new 클래스를 선언할때 메모리에 올라감. 범용적 기능을 가진 매서드 생성법 1) 클래스의 정체성을 훼손하며 편의상 해당 메서드를 자주 참조하는 클래스에 넣음 2) 클래스의 정체성을 유지하며 해당 메서드를 참조하는 클래스에서 (객체를 생성하지 않고) 매서드 앞에 클래스이름. 을 넣어준다. 3) Utility Class로 따로 생성해서 뺀다.. 2019. 3. 12. [C#] 주소록 프로젝트 - 매서드 편 주소록 요구사항 이름,전화,주소를 입력/검색/변경/삭제/전체출력을 한다. 매서드 정의 01. 메뉴 반복 void MainLoop(); 02. 메뉴 출력 void PrintMenu(); 03. 메뉴 선택 int GetSelectMenu(); 04. 주소정보 입력(이름, 전화, 주소) void InputAddress(); 05. 주소정보 검색(이름으로 검색) void SerachAddress(); 06. 주소정보 변경(이름으로 검색 후 변경) void UpdateAddress(); 07. 주소정보 삭제(이름으로 검색 후 삭제) void DeleteAddress(); 08. 주소정보 전체출력 void PrintAllAddress(); 09. 프로그램 종료 void ProgramExit(); 10. 화면 지우기.. 2019. 3. 12. [Unity] 06. 스카이박스(Sky Box) Sky Box 씬 뒤의 하늘 또는 먼 배경을 시뮬레이션 하기 위한 재질. 실존하는 것은 아님. 먼저 Asset Store에서 Skybox를 다운로드한 후 셋팅. [Window → Rendering → Lighting Settings] 2019. 3. 7. 이전 1 ··· 5 6 7 8 9 10 다음