일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹
- linux
- 자바연습문제
- 재택근무
- 패스트캠퍼스후기
- 국비
- javabasic
- 리눅스
- 디자인
- 자바
- 데이터베이스
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 직장인자기계발
- 자바기초
- ncs
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 디자인패턴
- Spring
- DB
- java
- 자바예제
- java기초
- String
- js
- DesignPattern
- 패스트캠퍼스
- 스프링
- 자바기본
- 직장인인강
- 패캠챌린지
- Today
- Total
목록전체 글 (239)
FIF's 코딩팩토리
캡슐화(encapsulation) 캡슐화는 관련이 있는 변수와 함수를 하나의 클래스로 묶고 외부에서 쉽게 접근하지 못하도록 은닉하는게 핵심이다. 객체에 직접적인 접근을 막고 외부에서 내부의 정보에 직접접근하거나 변경할 수 없고, 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다. 캡슐화의 가장큰 장점은 정보은닉(Information Hiding)에 있다. 외부에서 객체접근하는데 있어서 정보를 숨기고 객체의 연산을 통해서만 접근이 가능하게 하는 것이다. 정보은닉의 장점은 외부에서 특정 객체의 데이터 및 함수를 직접 접근을 막음으로써 변경을 못하게 하고 유지보수나 확장시 오류의 범위를 최소화 할 수 있고, 객체내 정보손상, 오용을 방지하고, 조작법이 바뀌어도 사용방법 자체는 바뀌지 않고, 데이터가 변..
접근 제어 지시자(access modifier) 와 정보은닉(information hiding) 접근 제어 지시자(access modifier) 그동안 우리는 public이라는 접근 제어 지시를 많이 사용했다. 클래스 앞, 멤버 변수 앞, 메서드 앞에 많이 붙여 사용했다. 그렇다면 이 접근 제어 지시자의 역할은 무엇일까? 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지의 여부를 지정하는 키워드이다. 접근 제어 지시자에는 3가지가 있다. private: 같은 클래스 내부에서만 접근 가능하다.(외부 클래스, 상속 관계의 클래스에서도 접근 불가) default: 같은 패키지 내부에서만 접근 가능하다.(상속 관계라도 패키지가 다르면 접근 불가.) 다른 패키지를 사용할 경우 import ..
참조 자료형 변수 변수의 자료형으로 기본 자료형에 int, long, float, dobule등이 있고 참조 자료형으로 String, Date, Student 등이 있다. 참조 자료형 변수는 클래스형으로 변수를 선언한다. 기본 자료형은 사용하는 메모리 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다르다. 참조 자료형을 사용할 때에는 해당 변수에 대해 생성해야 한다.(String 클래스는 예외적으로 생성하지 않고 사용할 수 있음) 그렇다면 참조 자료형을 정의하여 사용하려면 어떻게 해야할까? 예를 들어 학생이 수강한 과목들에 대한 성적을 산출하기 위한 경우 학생 클래스 속성에 과목이 모두 있으면 너무 비효율적이다. 그래서 학생(Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 ..
여러가지 생성자를 정의하는 생성자 오버로딩 자바에서 오버로딩은 사용자의 편의성을 위해 만들어졌다. 오버로딩은 생성자를 구현하여 사용할 수 있다. 클래스에서 생성자를 따로 구현하면 기본 생성자(default constructor)는 제공되지 않는다. 생성자를 호출하는 코드(client코드)에서 여러 생성자 중 필요한 따라 호출해서 사용할 수 있다. 아래 코드를 살펴보자. 맴버변수는 모두 String으로 선언되어 있다. 그리고 생성자는 2개이다. 앞서 배웠듯이 생성자는 클래스 이름과 동일하다. 하나는 기본생성자 UserInfo(){} 이고, 다른 하나는 매개변수를 3개 받는 생성자 UserInfo(String userId, String userPassword, String userName) { this.us..
생성자란 무엇인가? 자바에서 객체를 사용할 때 항상 생성자를 호출해야 한다. Student studentLee = new Student(); 여기서 studentLee는 참조 변수이고, new Student() 이부분이 바로 생성자이다. 생성자는 메모리 구조상 heap에 생성된다. 자바에는 기본 생성자가 있다.(default constructor) 클래스에는 반드시 적어도 하나 이상의 생성자가 존재한다. 클래스에서 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있다. 클래스에서 생성자가 하나도 없는 경우에는 컴파일러가 자동으로 생성자를 코드로 넣어준다. 기본 생성자는 매개변수가 없고 구현부가 없다. 아래 코드는 기본 생성자 이다. public Student() {} 그렇다면 기본 생성..
인스턴스 생성과 힙 메모리 객체를 흔히 인스턴스 라고 부른다. 인스턴스는 new() 키워드를 통해 생성된다. 클래스는 객체의 속성을 정의하고 기능을 구현하여 만들어 놓은 코드 상태이다. 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 된다. 예를들어 학생 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년등의 값을 가지게 된다. 저번시간에 Student 클래스를 만들고 멤버 변수를 정의했었다. Student studentLee = new Student(); Student studentKim = new Student(); 위 코드에서 studentLee 인스턴스와 studentKim 인스턴스는 메모리상으로 볼 때 각각 다른 위치에서 생성된다. 그러므로 stud..
객체의 속성은 멤버변수로, 객체의 기능은 메서드로 구현한다. 이번에는 직접 코딩하며 실습해 보겠다. 학생 클래스를 정의하고 이를 사용해 보겠다. 학생 클래스의 속성을 멤버 변수로 선언하고 메서드를 구현한다. 아래 코드에서 멤버 변수는 studentId, studentName, address 이렇게 3개이다. 메서드는 학생 정보를 콘솔에 출력해서 보여주는 showStduentInfo()와 학생 이름을 반환하는 getStudentName() 이 있다. 이때 showstudentInfo() 메서드의 반환값은 void 즉 없고, 넘겨 받는 매개변수도 없다. getStudentName() 메서드의 반환값은 String 즉 문자열이다. 마찬가지로 넘겨 받는 매개변수는 없다. public class Student {..
함수와 메서드 함수(function) 이란 하나의 기능을 일련의 코드로 서브루틴(sub routine) 이라고도 한다. 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환된다. 예를 들어 덧하기를 수행하는 add라는 함수가 있다고 하자. add 함수가 호출되어 로직이 차례로 진행되고 마지막에는 반환된다. 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있다. add함수는 더하기를 수행한다. 그런데 무엇을 더하는지는 다를 수 있다. 숫자 두개를 입력받아 더한다. 가장 좋은 성적 두개를 더한다. 두 거리를 더한다. 위의 문장에 더하는 주체는 다르지만 3가지가 나온다. 이때 add함수를 한번만 정의하고 호출만 하면 편하게 재사용 할 수 있다. 아래는 ..