목록Programming (33)
개발자 항해
저번편에 이어서 회원가입시 필요한 제약조건들을 추가해본다. 제약조건은 join.js파일에 기술하였다. count를 써서 몇가지 조건을 만족했는지에따라 다르게 나타나도록 하였다. 핸드폰은 기호를 제외하고 번호만 표시되도록 하였다. 이름과 이메일 체크는 널값 체크만 했는데 형식에 맞는지 여부는 추가해주면 된다. 조건에 만족하지 않으면 화면에는 이렇게 표시된다. 아쉬운점은 아이디 중복체크부분에 조건을 만족하지 못했을때는 빨간색, 조건에 만족하면 파란색으로 표시하고 싶었는데 모두 파란글씨로만 나와서 아쉽다. 아이디 중복체크기능은 다른 게시글에서 자세히 다뤄보도록하겠다.
회원가입화면을 구현해보았다. 빨간색으로 표시한 부분이 필요한 파일들이다. (CSS 파일은 생략하였다.) 일단 화면에 표시될 양식을 먼저 구성한다. 여기까지는 회원가입 기본동작 원리이다. 이제 회원가입시 필요한 제약조건들은 다음편에서 서술하도록 하겠다.
오버로딩이란? 사전적 의미로는 과적하다, 과중하게 부담시키다의 뜻이있다. 그 말과 비슷하게 같은 이름의 메서드를 서로 다른 작업을 처리하도록 하는것이다. 오버로딩은 4가지 특징이 있는데 다음과같다. 1) 메서드명은 동일해야한다. 2) 매개변수의 타입이나 갯수는 달라야한다.(순서가 달라도 됨) 3) 리턴타입이 다른것은 오버로딩과 무관하다. 4) 매개변수의 변수명만 다른것은 오버로딩과 무관하며 각각 다른 메서드를 호출하도록 '구분'되어야 한다. 위 예제와 같이 매개변수별로 메서드기능을 달리 구현하고 싶을때 오버로딩을 사용하지 않으면 메서드를 각각 다른이름으로 정의해줘야 한다. 하지만 오버로딩을 사용하면 run이라는 같은 이름의 메서드로 매개변수만 달리하여 각각 다른 기능을 구현할수 있다. 오버라이딩이란? o..
상속이란? 슈퍼클래스(부모)의 모든 멤버를 서브클래스(자식)에서 물려받아 선언없이 사용하는것이다. - 상속을 받은 서브클래스에서 별도의 선언이나 정의 없이도 슈퍼클래스가 가진 멤버변수나 메서드 등을 자신의 멤버처럼 사용가능하다. - 상속을 활용하면 코드 중복이 제거 되며, 유지보수에 용이해진다. - 슈퍼클래스가 가진 멤버를 물려받아 서브클래스에서 멤버를 추가하므로 기존 클래스를 확장하는 개념으로 사용된다. - private이 적용된 멤버는 상속되지 않는다. - 생성자도 상속되지 않는다.(생성자는 자신의 클래스이름과 동일해야하는데 생성자가 상속되면 이름이 달라지기때문에 안된다.) - 자바는 단일상속만 지원 - 동시에 2개이상의 클래스를 상속받을 수 없다. - 클래스 정의시 별도의 extends 키워드를 사..
static 메서드 정적메서드라고도 하며 메서드 선언시 static을 붙여서 정의한다. static 멤버변수와 마찬가지로 클래스 로딩시 함께 메모리에 로딩되므로 클래스 명만으로 호출가능하다. 단, static 메서드 내에서는 인스턴스 멤버변수에 접근 불가하고 this,super사용도 불가하며, 일반메서드 호출도 불가능하다. 이유는 static메서드가 항상 먼저 호출되기때문 결론- static 메서드 내에서는 static 멤버만 접근 가능하다 활용 예 학교에 학생이 등록될때마다 학생번호가 자동으로 증가하게 할수 있다. 만약 static을 안쓴다면?
static ? 정적(고정된)이라는 의미를 갖고 있고 사용시 인스턴스 생성과 관계없이 클래스가 로딩되는 시점에 함께 메모리에 로딩된다. 이는 인스턴스 생성없이도 접근가능함을 의미한다(=클래스명만으로 접근 가능) 클래스, 메서드, 변수의 지정자로 사용가능하다. 참고) 자바 프로그램 실행 과정 1. 소스코드 작성 및 컴파일 후 클래스 실행 (ctrl +F11) 2. 클래스 로딩 - 클래스(정적,static) 멤버변수 및 메서드가 메모리에 로딩 3. main()메서드 호출 4. 인스턴스 생성 - 인스턴스 멤버변수,메서드가 메모리에 로딩 5. 메서드 호출 - 메서드 내의 로컬변수가 메모리에 로딩 6. 결과 출력
변수 선언 위치에 따른 분류 1. 로컬 변수(Local Variable) 메서드 내부에서 선언된 변수로 해당 메서드안에서 사용 가능하며 스택메모리에 생성된다. 그리고 반드시 초기화한후 사용해야한다. 2. 멤버변수(Member Variable) 클래스가 생성될때 힙메모리에 생성되며, 클래스 내부나 메서드 외부에서 선언되는 변수로 클래스 내에서 사용가능하다. 멤버변수는 별도의 초기화를 하지 않을경우에는 기본값으로 자동 초기화가 된다. 1) 인스턴스 멤버변수 인스턴스가 생성(new)될때 메모리에 로딩되며 인스턴스가 제거되는 시점에 메모리에서 제거된다. 그리고 인스턴스가 생성(new)될때마다 각각의 새로운 공간이 할당된다. 2) 클래스(static) 멤버변수 정적변수 라고도 하며 static 키워드를 붙여 사용..