JAVA/java 26
-
객체지향언어의 4가지 특징1. 캡슐화2. 추상화3. 상속4. 다형성 추상화란?abstarct을 붙인 클래스를 추상 클래스abstarct을 붙인 메서드를 추상 메서드라고 한다. 추상 클래스는 객체화 x 클래스들의 틀을 의미한다.추상 메서드는 기능구현 x 오버라이딩을 강제하는 역할이다. 추상메서드가 1개 이상 존재하려면,해당 클래스가 반드시 추상클래스여야만 한다. 추상화의 역사새로운 클래스를 만들려면..?1. 카피하기 위해서 기존의 것들을 살펴본다.2. 내가 만들려는 클래스가 기존 클래스들의 하위가 아니라, 기존 클래스 급이다..!!3. 복사해도 되지만 사실 안됨!! --> 만약 멤버변수가 어마어마하게 많다면? 다 할 수 있는가? : No / 따라서 복사 X4. 다른 클래스들을 살펴보니 모두 공..
-
객체지향언어의 4가지 특징1. 캡슐화2. 추상화3. 상속4. 다형성 캡슐화란?기능을 단위별로(java 기본 단위인 클래스별로) 보관하는 java 특성 덕분에, 구현에 필요한 기능이 있다면 이미 만들어진 것을 가져오면 된다는 내용이다. == 클래스별로 나누는 행동을 모듈화, 컴포넌트화라고 한다. 내가 사용하는 클래스, 패키지, 코드 덩어리들.. >> 내용을 몰라도 사용방법(용법, 언제 쓰는지)만 알면 쉽게 가져다가 사용할 수 있다. 내가 개발한 내용을 상대방이 몰라도 쓸 수 있게 묶어서 배포 == 정보은닉(hiding)그래서 함수명이 쉬워야 하고, 함수의 인자와 아웃풋이 그럴듯해야 한다. ex 1)int plus(int[] datas)boolean isEmpty(int[] datas, int cnt)..
-
객체지향언어의 4가지 특징1. 캡슐화2. 추상화3. 상속4. 다형성 예제 1.Animal a = new Dog(); == 동물이 저장될 수 있는 공간 a에 강아지 객체를 저장해 주세요. 라면,class Xxx extends Animal로 생성한 클래스들은 Dog 자리에 다 들어갈 수 있음. 동물.hello() 안녕강아지.hello() 멍멍으로 설정했고, a가 강아지 객체라면a.hello() >> 실행결과 : 멍멍 위와 같은 것을 동적바인딩이 일어났다고 한다. 예제 2. 점찍기class Point { int x; int y; Point(int x, int y){ // 생성자 this.x=x; this.y=y; } void move(){ } void m..
-
오버로딩 != 오버라이딩오버로딩은 함수명 중복정의 허용이라는 뜻이고,오버라이딩은 메서드 재정의를 의미한다. 오버라이딩오버라이딩은 위에서 작성한 대로 메서드 재정의를 의미하고,상속관계에서만 발생된다. 오버라이딩은 자식 메서드가 부모 메서드를 사용하고는 싶은데, 그대로 사용하기엔 마음에 들지 않기 때문에 바꿔서 사용하는 경우를 말한다. 오버라이딩을 사용하는 방법은 자식클래스 안에서- 마우스 우클릭 → Source (단축키 : Alt + Shift + S) → Overrid/Implement Methods.... 선택! → 원하는 항목 체크 후 → OK 그럼 아래와 같은 형태로 나오게 되는데, 함수 내부의 내용을 원하는 방식으로 수정해서 사용하면 되고,오버라이딩 했다는 내용을 확인할 수 있도록 @..
-
객체지향언어의 4가지 특징1. 캡슐화2. 추상화3. 상속4. 다형성 상속부모 클래스(상위 클래스)의 코드를자식 클래스(하위 클래스)가 전부 '재사용' 할 수 있다. (부모가 자식의 코드를 사용하는 건 불가능) 상속은 유지보수 용이성 극대화 라는 특징을 가지고 있다.- 코드를 잘게 잘라야 함 == 모듈화 (컴포넌트, 함수화) --> 코드 재사용성 증가- 오류 발견 시 수정을 적게 함 --> 오류의 파급효과 절감- 결과를 다양하게 추출할 수 있음.- 개발시간 단축, 개발비용 축소 예제. 점찍기class Point{ // 부모 클래스 int x; int y; Point(int x, int y){ // 생성자 this.x=x; this.y=y; } void printInfo() { System.out...
-
package class01;class Circle{ String name; int radius; // 반지름 double area; // 넓이 static final double PI=3.14; // 원주율 // ===> 객체와 무관하게 사용하기 위해 static 을 붙여준다. Circle(String name,int radius){// 생성자 : 멤버변수 초기화를 위해 사용한다. // Circle.PI=3.14; >> 멤버변수가 아니기 때문에 위쪽에서 선언해줘야 함. this.name=name; this.radius=radius; this.area=this.radius*this.radius*Circle.PI; }} staticstatic은 모든 인스턴스에서 동일하게 동작한다.static을 붙..
-
오버로딩함수명 중복정의 허용이라고 한다.메서드 시그니쳐가 다르다면 같은 함수명을 사용해도 이를 허용한다는 특징을 가지고 있다.주로 비슷하거나 유사하거나 같은 기능일 때 사용한다. 메서드 시그니쳐란?메서드 이름과 매개변수의 개수,타입,순서를 의미한다. 예제 1. 쇼핑몰을 만든다고 가정했을 때package class01;class Product{ int num; //pk값 String name; int cnt; int price; // 생성자 오버로딩 Product(int num,String name){ this.num=num; //PK값, 시스템에서 부여하는 값 this.name=name; //상품명; this.cnt=0; //재고; this.price=0; //가격; } P..
-
프로그램을 만들때, CRUD를 먼저 정의하여 설계할 필요가 있다.CRUD란?Create 생성Read 출력 (내용에 따라 selectOne 혹은 selectAll 이 될 수 있다.)Update 변경Delete 삭제 절차지향 : 프로그램을 순서에 맞게 작성하는 것.흐름도가 중요하다 (플로우 차트)객체지향 : 프로그램을 객체 단위로 나누어 작성하는 것. 특히 웹에서는 대부분이 객체지향 코딩이다.이유 : 순서가 사용자에 의해 변경되기 때문에 (ex. 커피주문어플 : 마이페이지에서 PW 변경하고 -> 주문 등..)순서가 몹시 다양하기 때문에 절차지향으로는 한계가 있다. class class는 객체지향 코딩의 기본 단위이며, 자료형이다.class는 관련이 있고, 개수가 정해져 있으며, 자료형은 같지 않아도 된다..
-
프로그램프로그램에서 모든 요구사항은 CRUD로 귀결된다.CRUD는 비즈니스 메서드, 비즈니스 로직, 핵심 로직, 핵심 관심 등으로도 불리는데, 내용은 아래와 같다.Create 생성Read 출력Update 변경Delete 삭제 학생부 프로그램을 만들기에 앞서, CRUD를 먼저 정의해보자.C : 학생을 추가R : 1) 학생부 전체 출력 *selectAll 2) 학생 번호 (PK) 검색해서 출력 *selectOne 3) 학생 이름으로 검색 *selectAll 4) 1등 출력하기 *selectAll 5) 등급으로 출력하기 *selectAllU : 재시험을 봐서 성적에 변화주기D : 학생 삭제- 검색의 결과에 따라 selectAll / selectOne 으로 나뉘게 된다.- P..
-
함수는 class 안쪽, main 메서드 바깥쪽에서 사용한다. 함수의 형식은public output 함수명(intput){} 과 같은데, public을 사용하는 이유는 JAVA가 공개 정책을 사용하고 있기 때문이다. 또한 함수명은 기능을 바로 알 수 있도록 지어야 한다. 함수를 사용하는 이유1. 코드를 재사용 할 수 있다. == 유지보수가 용이하다. - 오류가 없는 코드를 재사용하는 것이기 때문에, 오류 검사 비용이 추가되지 않는다 == 경제적이다 - 오류를 검사하는 시간이 추가되지 않는다. == 효율적이다.2. mian() 에서의 코드 가독성이 좋아진다. 함수의 4가지 유형1input 없다 Xoutput 없다 X2intput 있다 O output 없다 X3intput 없다 Xoutput ..
-
자료구조의 종류배열리스트 연결리스트 큐 스택 트리 집합 맵 .... [배열]배열의 3요소1. 크기 : 개수를 분명하게 알고 있는 데이터들2. 관련성 : 이 데이터들이 서로 관련이 있는 상태3. 자료형 : 자료형이 같음--> 위 3가지 요소가 모두 만족했을 때 배열이 될 수 있음. (하나라도 불만족시 해당 x)ex1.학생의 국어, 영어, 수학점수 → 배열O, 3개의 데이터로 개수 정확하고, 연관성이 있으며, int 타입으로 자료형이 모두 같기 때문ex2.학생의 이름, 나이, 평균 → 배열X, 데이터 수가 정해져있고, 연관성이 있지만 자료형이 다름 배열의 사용법// 사용법 1// student라는 이름을 가진 int 형식의 배열을 만들어줘// 그 배열은 int 타입의 값 3개를 저장할 배열이야.in..
-
제어문에는 조건문과 반복문이 있다.조건문 : if반복문 : while, for 조건문if문단발성, 1회, 일회성 ...★만약 ~ 라면 ~ 해주세요양자택일, N지선다, 버튼식 선택 (1 이라면 ~, 2라면 ~, 3이라면 ~, .....) if문 사용시 아래와 같은 형태이다. // 조건식 == boolean 타입if(조건식1){ //조건식1이 참일때 실행되는 영역}else if(조건식2){ //조건식1은 거짓이고, 조건식2가 참일때 실행되는 영역}else{ //위에 있는 조건식 모두 거짓일때 실행되는 영역} 문제1. 1 ~ 12까지의 숫자 중 하나를 입력받고, 3, 4, 5월은 봄 / 6, 7, 8월은 여름 / 9, 10, 11월은 가을 / 12, 1, 2월은 겨울 이라고 출력해주세요.package d..