일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Android
- Android Studio
- syntax
- Subversion
- VCS
- Branch
- 생성자
- terms
- 문법
- 자바
- java
- intellij 연동
- TortoiseSVN
- error
- 캡슐화
- cherrypick
- 상속
- gradle
- install
- git
- constructor
- Class
- commit
- svn
- IntelliJ IDEA Community
- Checkout
- IntelliJ
- sourcetree
- SSL
- 특징
- Today
- Total
목록JAVA (18)
Jay's Developer Note
임시 비밀번호 생성 직접 구현해보기 이번엔 임시 비밀번호를 직접 구현해봤다. 로직은 의외로 간단하다. 1. 임시로 생성할 문자 배열 정의 2. 배열 범위만큼 난수를 발생 3. 난수로 문자 배열의 특정 인덱스 값을 가져옴 4. 요청한 길이만큼 반복 5. 랜덤 문자열 반환 소스코드 난수로 인덱스를 걸어 가져올 문자 배열 선언 private final char[] rndCharSet = new char[]{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', '..
임시 비밀번호 생성 라이브러리를 이용해 임시 비밀번호를 생성했다. 라이브러리는 apache 에서 제공하는 Apache Common Lang 이다. 라이브러리 추가 Gradle implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0' Maven org.apache.commons commons-lang3 3.12.0 작성일 기준 최신 버전이 3.12.0 이었다. 더 자세한 내용과 다른 버전을 사용하려면 여기 로 가서 확인하면 된다. 사용방법 // 완전 랜덤으로 이뤄진 8개 문자열 반환 RandomStringUtils.random(8); // 랜덤 알파벳으로만 이뤄진 8개 문자열 반환 RandomStringUtils..
상속(Inheritance) 상속(inheritance)은 아주 매력적이다. 우리가 흔히 알고 있는 부모-자식 간에 상속과 동일하게 생각할 수 있다. 부모는 자식에게 유전자를 물려줄 수 있고 재산도 물려줄 수 있고 자식은 물려받은 것들을 사용할 수 있다. 부모가 없이는 자식이 존재할 수 없으며 자식은 부모가 필히 한 개이어야 한다. 부모클래스는 상위클래스, 수퍼클래스라고도 불리고 자식클래스는 하위클래스, 서브클래스라고도 불린다. 부모와 자식은 1:N 관계가 되어야 한다. 사용방법 extends 를 사용하여 부모클래스를 상속받는다. [접근 제어자] class ClassName extends SuperClassName 부모클래스를 특정하지 않으면 Object 클래스를 상속받는다. [접근 제어자] class ..
캡슐화 & 은닉화 캡슐화와 은닉화는 단어처럼 캡슐 알약에 비교하면 이해하기 쉽다. 감기약의 성분을 환자(사용자)는 알 필요가 없다. 단지 알약을 물과 함께 삼키면 속에서 약효가 발휘된다. 이처럼 외부에서 내부의 내용을 알 수 없게 감싼 구조를 캡슐화했다라고 할 수 있다. 그렇다면 자연스레 은닉화도 같이 된 것이다. 예시 코드들을 보면서 한 번 더 이해 해보도록하자. 예시 1 class Car { // Bad public String model; public int maxSpeed; } 외부에서 '직접' 멤버 변수에 접근할 수 있기 때문에 캡슐화에 위배되는 코드다. 그렇다면 캡슐화를 적용하려면 어떻게 해야 할까? 멤버 변수들을 숨기고(은닉화) 접근할 수 있는 창구를 만들어주면 된다. class Car { ..
메소드(Method) 메소드(Method)는 클래스가 가지는 동적인 특성을 정의한다. 부르는 사람에 따라 메소드, 메서드 등 다양하게 불린다. 형식 [접근 제어자] [사용 방식] 리턴타입 메소드이름([매개 변수]...) { // 코드 } 생성자와는 다르게 리턴타입이 반드시 들어가야 한다. 접근 제어자 접근 제어자는 멤버 변수와 동일하게 적용된다. 사용 방식 사용방법 class Hyundai { public static void main(String[] args) { Car mCar = new Car(); mCar.model = "AVANTE"; mCar.print(); } } class Car { String model; public void print() { System.out.println("자동차 ..
멤버 변수(Member Variable) 멤버 변수는 클래스를 정의할 때 메소드 밖에 선언하는 변수로서 객체가 가지는 정적인 특성인 속성을 나타내는 데 사용한다. 형식 [접근 제어자] [사용 방식] 데이터형 변수명; 접근 제어자 : public, private, protected, default 사용 방식 : static, final 접근 제어자 접근 제어자를 통해 객체지향 언어의 특징 중 하나인 캡슐화와 정보 은닉을 설계할 수 있다. 사용방법 public class Hyundai { public static void main(String[] args) { Car mCar = new Car(); // public 멤버 변수이므로 어디서든 접근 가능 mCar.brand = "현대"; // default 멤..
생성자(Constructor) 생성자(Constructor)는 클래스로 객체를 생성할 때 객체의 초기화하는 특수한 메소드이다. 메소드와 비슷한 모습을 하고 있지만 조금 다른 생성자의 특징을 알아보겠다. 특징 - new 연산자와 같이 사용된다. - 이름에 걸맞게 객체 생성 시 사용된다. - 주로 객체 생성 시 객체의 멤버 변수를 초기화하는 역할을 한다. - 생성자의 네이밍은 클래스 이름과 동일해야만 한다. - return 타입이 없다. - 생성자가 없을 경우 JVM 이 자동으로 기본 생성자를 설정한다. - 사용자 정의 생성자가 있을 경우 기본 생성자는 없어진다.(기본 생성자를 함께 쓰려면 직접 기본 생성자를 추가해야 한다.) 형식 [접근 제어자] 생성자명(매개 변수) { // 코드 } 접근 제어자란 해당 ..
클래스(Class) Class 는 같은 모양을 찍어낼 수 있는 거푸집이라고 생각하면 된다. new 를 통해 Class 를 생성하게 되면 같은 속성, 같은 메소드를 가진 객체 변수를 무한대로 찍어낼 수 있다. 구조 // 클래스 선언부 class ClassName { // 클래스 멤버 // 생성자 public ClassName() { } // 멤버 변수 private String classVariable; // 메소드 public void setClassVariable(String classVariable) { this.classVariable = classVariable; } public String getClassVariable() { return this.classVariable; } // 내부 클래스..
Intellij 에서 JAVA 실행하기 그간 공부한 JAVA 코드를 Intellij 로 실행하는 법에 대해 다뤄보겠다. 신규 프로젝트 생성 New Project 로 새로운 프로젝트를 생성한다. SDK 가 없다면 JDK 를 하나 다운로드 해준다. 다운로드 링크 (작성일 기준으로 8u202 버전이 최신 버전이다.) 템플릿은 사용하지 않으므로 Next 적당한 소스코드 저장 위치와, 프로젝트 이름을 설정하고 Finish 를 누른다. JAVA 파일 생성 완료되고 나면 src 폴더에 우클릭을 하여 자바 파일을 생성한다. Main.java 파일 안에 위와 같이 main 메소드를 넣어준다. public class Main { public static void main(String[] args) { System.out...
분기문 프로그램의 흐름을 강제로 특정 위치로 이동시키는 문법이다. break 문, continue 문이 있다. break 문 switch 문을 빠져나오거나 반복문에서 가장 가까운 블록으로 빠져나올 때 사용한다. for (int i = 0; i = 5) break; System.out.println("for.."); } System.out.println("End of for"); break 문은 해당 break 를 쓴 반복문 블록 밖으로만 나가게 된다. 근데 만약 다중 for 문에서 break 를 쓴다면 어떻게 될까? for (int i = 0; i < 100; i++) { for (int j = 0; j..