값을 한번 넣은 변수는 왠만하면 값을 바꾸지 말아라.
- 가독성이 떨어지기 때문이다. - A라는 값을 넣었다가, 또다시 B라는 값을 넣으면 안된다. - 변수에 최초 넣은 값은 바꾸지 않는 코딩을 하라. - 꼭 바꿔야 하는 상황이라면 구분을 해야한다. 암묵적인 코딩컨벤션
- 변수를 선언과 동시에 초기화 할경우 = 그 변수안에 있는 값은 변하지 않는다는것을 의미한다. - 변수를 선언만 한 상태이다. = 앞으로 해당 변수에 다양한 값이 들어갈것이라는것을 의미한다. 결합연산자
- 문자열과 문자열을 연결한다. - 숫자가 있을경우 산술연산자로써 더하는 기능을 한다. 코딩컨벤션
- 대입연산자(=) 오른쪽은 tab으로 맞춰준다. - 타입이 같을땐 구분연산자로 연결하여 입력한다. - 한줄주석은 코드 바로 우측옆에 작성해야 한다. - 주석이 길어질땐 /* + 엔터 누르면 생기는 주석을 이용한다. - 여러줄 주석의 맨 첫번째 줄과 맨 마지막 줄은 비워야 한다.
참조타입과 기본타입
- JAVA는 크게 두가지 타입이 있다. - 기본타입은 stack에 값이 들어간다. - 참조타입은 stack에 주소가 들어있고, 실제 값은 힙에 들어가있다. 인수 인자 전달인자 파라미터
- 전달인자: 호출함수쪽에서 작성하는 인수 - 매개변수: 실제 구현부에서 작성한 인수
클래스형
- Student라는 클래스가 있을때, Student타입에는 Student타입의 값만 넣을 수 있다. - 이런 타입을 클래스형이라고 한다.
New
- 생성자 - 생성자는 리턴타입과 접근제한자가 없다. - 클래스명과 이름이 같다. - 해당 클래스가 호출 될 때 제일 먼저 읽어들인다. 객체생성
- Student sohee = new student(); 이같은 행위를 객체를 생성했다고 표현한다. - Student 클래스 코드 자체로는 메모리에 올라가지 않는다. - 메모리에 올리지 않으면 클래스 안의 객체들을 사용 할 수 없다는 의미이다. - New 를 이용하여 객체를 생성했다는것은 메모리에 올렸다는 뜻이 된다.
객체 생성과 인스턴스화
- new Student() // 객체를 생성했다고 한다. - Student sohee = new Student(); // 인스턴스화 했다고 한다. - 이때 sohee는 인스턴스 변수라고 한다. 인스턴스 변수
- 스택에 존재하고 힙에 있는 데이터를 참조하는 변수. - 참조변수, 레퍼런스 변수라고도 한다. - 연결연산자를 이용해서 메서드를 호출 할 수 있다. String 클래스
- String은 JAVA에서 특별한 클래스이다. (불변객체클래스 이다) - 레퍼런스 변수임에도 불구하고 값을 복사해도 절대 원본의 값은 변하지 않는다. - String name = "sohee";는 사실 String name = new String("sohee"); 이다. - String 클래스 안에는 여러가지 메서드들이 있다.
참조변수를 전달인자로 사용
- 참조변수를 전달인자로 사용했을때. 일반 변수와는 달리 스택으로 참조해, 힙에 직접 가서 값을 바꾼다. - 하지만 이때 사용한 전달인자와 매개변수는 다르다. 그저 참조하는 힙이 같을 뿐이다.
Static
- Static은 JVM내 메모리영역중 클래스라는 공간에 저장된다. - 다른 클래스의 객체를 사용할때는 그 클래스를 인스턴스화 해야한다. - 하지만 static이 붙는 객체들은 인스턴스화 한 객체들보다 먼저 생성된다.(메모리에 올라가 있는다.) - 따라서, Static이 붙는 객체들은 인스턴스화를 안해도 사용 할 수 있다.
Public Private 접근제어자, 접근제한자.
- public = 해당 '프로젝트' 내에서 어디서든 접근 할 수 있다. - private = 같은 클래스 내에 객체들 끼리만 접근 할 수 있다.
Static 객체와 인스턴스 객체
- Static이 아닌 객체들을 인스턴스 객체라고 한다. - Static 메서드 내에서는 인스턴스 객체를 사용 할 수 없다. - Static 메서드는 Static만 호출 할 수 있다. - Static객체는 인스턴스화 없이 같은 프로젝트 내 다른 클래스에서 사용 할 수 있다. 상속
- extends - 자식클래스는 부모클래스에 있는 모든 객체를 사용 할 수 있다. public default - default : 같은 패키지 내에서만 접근 할 수 있다. - public : 모든 패키지에서 접근 할 수 있다. - public > default > private
|
댓글