반응형

자바 54

자바 객체 지향 프로그래밍

프로그래밍은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다 절차 지향 프로그래밍1. 이름 그대로 절차를 지향한다 실행 순서를 중요하게 생각하는 방식이다.2. 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게"를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍1. 객체를 지향한다, 객체를 중요하게 생각한다.2. 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, "무엇을"중심으로 프로그래밍 한다.  절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 '객체'안에 함께 포함되어 있다. public..

공부/Java 2024.08.30

자바 기본형과 참조형

자바에서 참조형을 제대로 이해하는 것은 정말 중요하다고 한다.어제 배운 기본형과 참조형에 관하여 막연하게 이해하고만 있기 때문에 오늘 복습을 통해 제대로 이해하고 정리하려 한다. 변수의 데이터 타입은 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 변수에 직접 넣을 수 있는 기본형, 그리고 이전에 만들어 봤던 Student student1과 같이 객체가 저장된 메모리 위치를 가르키는 참조값을 넣을 수 있는 참조형으로 분류할 수 있다. 기본형(Primitive Type) : int, long, boolean, double 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터타입을 기본형이라고 한다.참조형(Reference Type) : Student student1, int[] stude..

공부/Java 2024.08.29

자바 클래스와 데이터

클래스와 데이터에 대한 내용이 머릿속에 확실하게 정리되지 않은 것 같아, 인강을 다시 보며 복습하기로 하였다.머리가 나쁘면 몸이 고생한다.  클래스가 필요한 이유 :int[] studentAges = {15,16};String[] studentNames ={"학생1", "학생2"};int[] studentGrades = {90,80};위처럼 데이터를 배열을 통해 관리하면 한 학생의 데이터가 3개의 배열에 나누어져 있기에 3개의 배열을 각각 변경해야 하는 어려움이 있다. 이렇게 하면 실수 가능성이 매우 높다. 이러한 문제를 해결하기 위해 학생이라는 개념을 하나로 묶는 것이다. 그 개념이 바로 클래스이다. 클래스를 사용해서 학생이라는 개념을 만들고, 각각의 학생 별로 이름 나이 점수를 관리 하는 것이다. p..

공부/Java 2024.08.29

자바 객체 지향 프로그래밍과 절차 지향 프로그래밍

프로그래밍 방식은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다. 절차 지향 프로그래밍1. 절차 지향 프로그래밍은 이름 그대로 절차를 지향한다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식이다.2. 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게"를 중심으로 프로그래밍한다. 객체 지향 프로그래밍1. 객체 지향 프로그래밍은 이름 그대로 객체를 지향한다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식이다.2. 객체 지향 프로그래밍은 실제 세게의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍 하는 방식이다. 즉, "무엇을" 중심으로 프로그래밍 한다.

공부/Java 2024.08.29

자바 Null

참조형 변수에는 항상 객체가 있는 위치를 가리키는 참조값이 들어간다. 그런데 아직 가리키는 대상이 없거나, 가리키는 대상을 나중에 입력하고 싶다면 null이라는 특별한 값을 넣어놓을 수 있다.   GC - 객체는 해당 객체를 참조하는 곳이 있으면, JVM이 종료할때까지 계속 생존한다 그런데 중간에 해당 객체를 참조하는 곳이 모두 사라지면 JVM은 필요없는 객체로 판단하고 GC(Garbage collection)가 돌아간다.   NullPointerException : 참조값 없이 객체를 찾아가면 어떤 문제가 발송할까?이 경우 NullPointerException이라는 예외가 발생하는데, 개발자를 가장 많이 괴롭히는 예외이다. 말 그대로 null을 가리키는(pointer)가 발생하는 예외(Exception..

공부/Java 2024.08.28

자바 참조형과 메서드 호출 활용

위의 initStudent를 생성후에 초기화할 수 있다 생성과 함께 초기화는 어떻게 진행할까? createStudent라는 Student 메서드를 새로 생성하였다.이 Student 메서드는 매개변수로 이름, 나이, 점수를 받고 Student라는 인스턴스를 생성하여 그 인스턴스에 이름, 나이, 점수를 집어넣은 후 return student를 통해 참조값을 반환한다.그 참조값은Student student1 및 Student student2에 대입되고 그 참조값을 가지고 printStudent를 통해 해당 참조값에 대한 이름, 나이, 점수를 알 수 있게 된다. 이해는 되는데 너무 어렵다.   여지껏 지역 변수들은 수동으로 초기화를 진행해주어야 했다. 초기화를 하지 않으면 에러가 터지기도 하였다. 그러나 멤버변..

공부/Java 2024.08.28

자바 클래스에 배열 도입하기

https://surrealcode.tistory.com/35 자바 클래스자바 세상은 클래스와 객체로 이루어져 있다. 그만큼 클래스와 객체라는 개념은 중요하다.   위와 같은 코드는 한가지 문제점이 있다.학생이 추가되면 추가될 수록 일일히 하나씩 만들어야 한surrealcode.tistory.com 기존에 있던 코드는 깔끔하지 않다.클래스를 도입하였지만 새로운 학생이 추가될 때마다 sout을 다시 찍어줘야하는 번거로움이 있기 때문이다.이러한 불편한 점을 해결하기 위해 배열에도 객체를 보관할 수 있다.  배열에 student를 담은 모습이다.여기서 유의할 점은 Student students = new Student[2]; 이다.여기는 Student 타입의 변수를 2개 보관할 수 있는 사이즈 2짜리의 배열을..

공부/Java 2024.08.27

자바 클래스

자바 세상은 클래스와 객체로 이루어져 있다. 그만큼 클래스와 객체라는 개념은 중요하다.   위와 같은 코드는 한가지 문제점이 있다.학생이 추가되면 추가될 수록 일일히 하나씩 만들어야 한다는 점이다.이러한 문제를 배열을 사용하여 사용하여 다음과 같이 간소화 시킬 수 있다.    하지만 이와 같이 코드를 최소화 시킨 것도 문제점이 존재한다.한 학생의 데이터가 studentNames[], studentAges[], studentGrades[]라는 3개의 배열에 나누어져 있다.따라서 데이터를 변경할 때 매우 유의해야 한다. 컴퓨터 입장에서는 문제 없지만 사람이 관리하기에는 좋은 코드가 아니다. 이러한 문제점을 클래스를 도입하여 해결할 수 있다. class 키워드를 사용하여 학생 클래스를 정의한다. 학생 클래스는..

공부/Java 2024.08.27

자바 메서드 오버로딩

자바는 메서드의 이름 뿐만 아니라 매개변수 정보를 함께 사용해서 메서드를 구분한다. 따라서 다음과 같이 이름이 같고, 매개변수가 다른 메서드를 정의할 수 있다. 매개변수가 다른 메서드를 여러개 정의하는 것을 메서드 오버로딩이라 한다. 오버로딩은 번역하면 과적인데, 과하게 물건을 담았다는 뜻이다. 따라서 같은 이름의 메서드를 여러개 정의했다고 이해하면 된다.주의) 매개변수가 같고 반환 타입이 다른 경우는 인정을 하지 않는다 *메서드 시그니처 = 메서드 시그니처는 자바에서 메서드를 구분할 수 있는 고유한 식별자나 서명을 뜻한다. 메서드 시그니처는 메서드의 이름과 매개변수 타입으로 구성되어 있다. 메서드 이름이 같아도 메서드 시그니처가 다르면 다른 메서드로 간주한다.    작은 크기에서 큰 크기로의 자동 형변..

공부/Java 2024.08.26

자바 메서드와 형변환

메서드를 호출할 때도 형변환이 적용될 수 있다. 메서드 호출과 명시적 형변환, 자동 형변환을 보자. 메서드를 호출하는데 인자와 매개변수 타입이 맞지 않다면 어떻게 해야할까? int보다 상대적으로 double이 크기 때문에 명시적 형변환을 진행해주어야 한다. 하지만 반대의 경우는 자동으로 형변환이 가능하다. 메서드를 호출할 때는 전달하는 인수의 타입과 매개변수의 타입이 맞아야 한다. 단 타입이 달라도 자동 형변환이 가능한 경우에는 호출할 수 있다.

공부/Java 2024.08.26
반응형