각 요소(예를들어 학생의 이름, 나이, 성적)배열을 통해 넣을수도 있다.그러나 한명을 삭제할때 3개 배열을 모두 빼놓지않고 조심히 수정해야한다.사람이 관리하기에 용이하려면, 학생이라는 개념을 하나로 묶어야 한다.멤버변수 : 이 변수들은 특정 클래스에 소속된 멤버이기 때
Student를 담을 수있는 배열을 생성하고, 해당 배열에 student1, student2 인스턴스를 보관.배열 선언 최적화생성과 선언을 동시에 하는경우 다음과 같이 더 최적화할 수 있다.자바에서 대입은 항상 변수에 들어있는값을 복사하기 때문에, 참조값이 복사된다.
기본형(Primitive Type) : int, long, double, boolean처럼 변수에 사용할 값을 직접 넣을수있는 데이터 타입참조형(Reference Type) : Student student1, int\[] students와 같이 데이터에 접근하기위한 참

멤버변수 : 클래스에 선언지역변수 : 메서드에 선언, 매개변수도 지역변수의 한 종류특정 지역(블록)에서만 사용되므로 메서드가 끝나면 제거된다.멤버변수: 자동초기화1) 인스턴스의 멤버변수는 인스턴스를 생성할때 자동으로 초기화된다.2)int = 0, boolean = fa
이름 그대로 절차를 지향. 실행순서를 중요하게 생각순차적으로 "어떻게"를 중심으로 프로그래밍이름 그대로 객체를 지향. 객체를 중요하게 생각하는 방식실제세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그그래밍."무엇을" 중심으로 프로그래밍
메서드 안에서는 매개 변수가 우선순위를 가진다. 따라서 클래스 내에서 멤버변수와 이름이 같으면 메서드안에서는 매개변수에 접근하게 된다.멤버 변수에 접근하려면 this. 라고 해주면된다. this는 인스턴스 자신의 참조값을 가리킨다.
자바에서는 접근제어자를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거 나 제한할 수 있다.접근 제어자가 없다면객체 사용자는 외부에서 필드와 메서드에 모두 접근할 수있다. 따라서 제약조건이 있는 메서드를 무시하고 필드

1\.

static 키워드는 주로 멤버 변수와 메서드에 사용된다.특정 클래스를 통해 생성된 객체의 수를 세는 프로그램 아래 클래스는 객체 생성 시 의도대로 동작하지 않는다.객체를 생성할 때마다 Data1의 인스턴스는 새로 만들어진다. 인스턴스에 포함된 count 변수도 새로
메서드 앞에도 static을 붙일 수 있다. 이것을 정적 메서드 또는 클래스 메서드라 한다. 정적 메서드는 static의 문자 그대로 의미이고, 클래스 메서드라는 용어는 인스턴스 생성없이 마치 클래스에 있는 메서드를 바로 호출 하는 것처럼 느껴지기 때문이다.static

final 키워드는 이름 그대로 끝! 이라는 뜻이다.변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다.final은 class, method를 포함한 여러곳에 붙을 수 있다.final을 지역변수에 설정할 경우 최초 한번만 할당할 수 있다. 이후 변수 값 변경을
상속 - 시작 상속이 왜 필요한가?

객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다.프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 부모타입의 변수가 자식 인스턴스 참조하는 코드를 보자.부모는 자식을 담을 수 있다.Parent poly = ne
먼저 다형성을 사용하지 않고 코드를 작성
Animal과 같이 부모 클래스는 제공하지만, 실제 생성되면 안되는 클래스를 추상 클래스라 한다.추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스이다. 따라서 실체인 인스턴스가 존재하지 않는다. 대신에 상속을 목적으로 사용되고, 부모 클래스 역할을 담당한다.n

자바는 순수 추상 클래스를 더 편리하게 사용할 수 있는 인터페이스라는 기능을 제공한다.인터페이스는 class가 아니라 interface 키워드를 사용하면 된다.인터페이스는 다음과 같은 특징을 가진다.인스턴스를 생성할 수 없다상속시 모든 메서드를 오버라이딩 해야 한다.주