본문 바로가기

IT관련 정보21

Java 공부편 - 절차 지향 프로그래밍(3) 앞선 절차 지향 프로그래밍에서 볼륨 올리기 위한 코드에는 중복이 많이 사용되었는데 음악 플레이어 켜기, 꺼기 볼륨 증가, 감소 등 재사용될 수 있는 부분들을 메서드를 사용하여 코딩을 해보겠습니다. 각각의 기능들을 메서드로 만든 덕분에 각각의 기능이 모듈화 되었습니다. 모듈화의 장점에 대해 알아보겠습니다. - 중복 제거 : 로직 중복이 제거되었습니다. 같은 로직이 필요하면 해당 메서드를 여러번 호출하면 됩니다. - 변경 영향 범위 : 기능을 수정할 때 해당 메서드 내부만 변경하면 됩니다. - 메서드 이름 추가 : 메서드 이름을 통해 코드를 쉽게 이해할 수 있습니다. 모듈화란? 쉽게 이야기해서 레고 블럭을 생각하면 됩니다. 필요한 블럭을 가져다가 꼽아서 사용할 수 있고 여기서 음악 플레이어의 기능이 필요하면.. 2024. 3. 2.
Java공부편 - 절차 지향 프로그래밍(2) 앞에서 만든 코드에 클래스를 도입해서 MusicPlaterData라는 클래스를 만들고, 음악 플레이어에 사용되는 데이터들을 묶어서 멤버 변수로 사용해 보겠습니다. 절차 지향 음악 플레이어 음악 플레이어에 사용되는 volume, isOn 속성을 MusicPlayerData의 멤버 변수에 포함했습니다. 앞으로 음악 플레이어에 사용될 속성들은 여기에 추가로 넣어서 사용하면 편리하게 사용할 수 있습니다. 앞에서 MusicPlayerData를 만들어서 volume, isOn속성을 멤버변수에 포함시켜 두었기 때문에 음악 플레이어와 관련된 데이터는 MusicPlayerData 클래스에 존재하게 됩니다. 그렇기 때문에 MusicPlayerData data = new MusicPlayerData();라는 코딩줄을 통해 .. 2024. 3. 1.
Java 공부편 - 절차 지향 프로그래밍(1) 절차 지향 프로그래밍이란? 절차 지향 프로그래밍은 이름 그대로 절차를 지향합니다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식입니다.절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식입니다. 객체 지향 프로그래밍이란? 객체 지향 프로그래밍은 이름 그대로 객체를 지향합니다. 객체를 중요하게 생각하는 방식입니다. 실제 세계의 사물이나 사건을 객체로 보고 이러한 객체들은 간의 상호작용을 중심으로 프로그래밍하는 방식입니다. 절차 지향 프로그래밍과 객체 지향 프로그래밍의 차이점 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있습니다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 '객체'안에 함께 포함되어 있습니다. 지금까지 클래스와 객체를 사.. 2024. 2. 29.
Java 공부편 - NullPointerException NullPointerException이란? NullPointerException은 이름 그대로 null을 가리키다(Pointer)인데, 이때 발생하는 예외(Exception)입니다. null은 없다는 뜻이므로 결국 주소가 없는 곳을 찾아갈 때 발생하는 예외입니다. 객체를 참조할 때는.(dot)을 사용합니다. 이렇게 참조값을 사용해서 해당 객체를 찾아갈 수 있는데 참조값이 null이라면 없다는 뜻이므로 찾아갈 수 있는 객체(인스턴스)가 없게 됩니다. NullPointerException은 이처럼 null에.(dot)을 찍었을 때 발생합니다. EX) data 참조형 변수에 null 값이 들어가 있으므로 data.value에서 data의 참조할 주소가 존재하지 않게 됩니다. 따라서 참조할 객체 인스턴스가 존재.. 2024. 2. 28.
Java 공부편 - null 참조형 변수에서 가리키는 대상이 없다면 null이라는 특별한 값을 넣어둘 수 있습니다. null은 값이 존재하지 않는 없다는 뜻입니다. null값 할당 Data data =null Data 타입을 받을 수 있는 참조형 변수 data를 만들었습니다. 그리고 여기에 null 값을 할당했습니다. data 변수에는 아직 가리키는 객체가 없다는 뜻입니다. data = new Data() 이후에 새로운 Data 객체를 생성해서 그 참조값을 data 변수에 할당했습니다. 이제 data 변수가 참조할 객체가 존재하게 됩니다. data = null 마지막에 data에 다시 null 값을 할당했습니다. 이렇게 되면 data 변수는 앞서 만든 Data 인스턴스를 더는 참조하지 않게 됩니다. 이렇게 아무것도 참조하지 않게 되.. 2024. 2. 23.
변수와 초기화 변수의 종류 멤버 변수(필드) : 클래스에 선언 지역 변수 : 메서드에 선언, 매개변수도 지역 변수의 한 종류이다. 멤버변수, 필드 예시 name, age, grade는 멤버 변수이다. 지역변수 예시 student1, student2는 지역 변수이다. 여기서 a와 x는 지역 변수이다. 지역변수는 이름 그대로 특정 지역에서만 사용되는 변수라는 뜻이다. 예를 들면 변수 x는 changePrimitive() 메서드의 블록에서만 사용된다. changePrimitive() 메서드가 끝나면 제거된다. a 변수 또한 마찬가지로 main() 메서드가 끝나면 제거된다. 변수의 값 초기화 멤버 변수 : 자동초기화 - 인스턴스 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화된다. - 숫자(int) = 0, boolean .. 2024. 2. 22.
Java 공부편 - 기본형과 참조형(2)_메서드 호출 기본형과 참조형 메서드 호출 메서드를 호출할 때 사용하는 매개변수(파라미터)도 결국 변수일뿐입니다. 따라서 메서드를 호출할 때 매개변수에 값을 전달하는 것도 앞서 설명한 내용과 같이 값을 복사해서 전달하게 됩니다. 다음 메서드 호출 코드를 보고 어떤 결과가 나올지 먼저 생각해보세요. 기본형과 메서드 호출의 예시 위에 서와 같이 출력값은 전,후 20이 출력이 됩니다. 결과를 분석해보면 changePrimitive(int x)가 발동되면서 x에는 30이 되지만 a 값은 20으로 유지가 됩니다. 그렇기 때문에 a는 그대로 20이 출력되고 x에는 값이 30이 되므로 메서드 a의 값은 전, 후 그대로 20이 출력이 됩니다. 참조형과 메서드 호출의 예시 Data 인스턴스를 생성하고, 참조값을 dataA 변수에 담고.. 2024. 2. 8.
Java 공부편 - 기본형과 참조형(1) 기본형과 참조형 자바에서 참조형을 제대로 이해하는 것은 정말 중요합니다. 이번에는 기본형과 참조형에 대해서 더 깊이 있게 알아보고 확실하게 정리해 보겠습니다. 변수의 데이터 타입을 크게 보면 기본형과 참조형으로 분류할 수 있습니다. 사용하는 값을 변수에 직접 넣을 수 있는 기본형, 객체가 저장된 메모리의 위치를 가리키는 참조형으로 분류할 수 있습니다. - 기본형 : int, long, double, boolean처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 합니다. - 참조형 : Student student1, int[ ] students와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라고 합니다. 참조형은 객체 또는 배열에 사용됩니다. 정리하면 기본형.. 2024. 2. 7.
Java 공부편 - 클래스(2) 클래스를 사용해서 학생이라는 개념을 만들고, 각각의 학생 별로 본인의 이름, 나이, 성적을 관리하는 것입니다. 다음 예제를 통해 알아보겠습니다. ex) public class student { String name; int age; int grade; } class 키워드를 사용해서 학생 클래스 Student를 정의하고 학생 클래스는 내부에 name, age, grade 변수를 가집니다. 클래스에 정의한 변수들을 멤버 변수 또는 필드라고 합니다. - 멤버 변수(Member Variable) : 이 변수들은 특정 클래스에 소속된 멤버이기 때문에 이렇게 부릅니다. - 필드(Field) : 데이터 항목을 가리키는 전통적인 용어입니다. 데이터베이스, 엑셀 등에서 데이터 가각의 항목을 필드라고 합니다. - 자바에.. 2024. 1. 17.
Java 공부편 - 클래스가 필요한 이유(1) 자바는 클래스와 객체로 이루어져 있습니다. 클래스와 객체는 개념이 왜 필요한지부터 시작해서, 클래스가 어떤 방식으로 발전하면서 만들어지는지 알아보겠습니다. 우선 예제를 통해서 알아보겠습니다. 위에 코딩은 학생의 이름, 나이, 성적을 출력하는 코딩입니다. 하지만 학생을 추가해야할 경우 변수를 추가로 선언해야 하고, 또 출력하는 코드를 추가해야 하는 단점이 있습니다. 아래와 같이 코딩을 수정한다면 그러한 단점을 보안할수 있게 됩니다. 위에 코딩은 배열을 사용해서 코드 변경을 최소화하는데는 잘 되었지만 한 학생의 데이터가 3개의 배열로 나누어져 있습니다. ( studentNames [], studentAges [], studentGrades [] ) 데이터를 변경할 때 매우 조심해서 작업을 해야합니다. 예를 .. 2024. 1. 16.
반응형