본문 바로가기
반응형

프로그래밍 언어/Java28

[Java] [예제] 비만 지수 구하기 비만 지수 구하기 - 객체 개념을 이용해서 비만 수치 구합니다. - 객체 역할에 대해 조금 더 생각해봅니다. [비만 지수 예제] public class BodyMassIndexMachine { public float calculate(float height, float weight) { float hData = height * height; float result = weight / hData; return result; } public static void main(String[] args) { BodyMassIndexMachine machine = new BodyMassIndexMachine(); float h = 1.8F; float w = 73F; float index = machine.calcu.. 2021. 2. 23.
[Java] 역컴파일로 기본 생성자 확인해보기 기본 생성자 역컴파일 클래스를 생성하고 별도의 생성자를 만들지 않으면 컴파일러가 자동으로 기본 생성자를 만들어 냅니다. 실제로 그렇게 동작하는지 클래스 파일을 역컴파일하여 확인하고자 합니다. ※ 기본 생성자(Default Constructor): 리턴타입이 없으며, 메소드의 이름이 클래스의 이름과 같은 형태 [SampleObj.java] public class SampleObj { } 위의 코드를 저장해서 실행하며 아래와 같은 경로에 .class 파일이 존재합니다. ※ PC마다 경로 상이할 수 있음 C:\Users\hsw\eclipse-workspace\main\bin 명령 프롬프트 창에서 아래 명령어 수행 ① cd C:\Users\hsw\eclipse-workspace\main\bin ② javap S.. 2021. 2. 23.
[Java] 기본 생성자 & 매개변수 생성자 기본 생성자 & 매개변수 생성자 클래스를 설계하고 사용할 때, 생성자를 만들지 않고 메소드만 사용하는 경우도 있습니다. Q. 객체(클래스)는 생성자 없이 생성이 가능할까? NO A. 인자도 없이 단순히 리턴되는 형태를 기본 생성자(default constructor) * 생성자를 명시하지 않더라도 컴파일러가 기본 생성자를 자동으로 생성해준다. 왜냐하면 객체가 생성될 때 반드시 생성자가 호출되어야 하기 때문이다. Q. 생성자를 명시하든 안하든 컴파일러에 의해 기본 생성자가 무조건 실행되는 것일까? 생성자에는 기본 생성자(default constructor)와 사용자 정의 생성자(UserDefined Constructor)가 존재합니다. ※ "사용자 정의 생성자"를 "매개변수"가 있는 생성자로 볼 수 있습니.. 2021. 2. 23.
[Java] 생성자(Constructor) 생성자(Constructor) 생성자는 인스턴스를 생성해주는 역할 - 생성자의 이름은 클래스의 이름과 동일하다. - 값을 반환(return)하지 않는다. - 생성자도 오버로딩이 가능하다. (생성자도 메소드 중 하나이다.) - 생성자는 new 키워드로 객체를 생성할 때만 호출된다. [에제 코드] class Calculator { int left, right; public Calculator(int left, int right) { this.left = left; this.right = right; } public void sum() { System.out.println(this.left + this.right); } } public class Main { public static void main(Stri.. 2021. 2. 23.
[Java] 객체 프로그래밍이란? 객체지향 프로그래밍(Object-Oriented Programming) 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것 객체 지향 프로그래밍은 좀 더 현실을 잘 반영하기 위한 노력의 산물 객체 지향 프로그래밍에서 중요한 것은 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑하는 것 #목적: 재사용 / #형태: 변수 + 메소드 등장 배경 객체 지향 언어가 출현할 당시 가장 범용으로 사용되는 언어는 절차 지향 언어였습니다. 그리고 객체지향언어는 그런 절차 지향 언어의 단점을 보완하고자 등장하였습니다. 객체 지향 언어는 상속, 다형성, 객체, 캡슐화 등 소프트웨어 재사용을 위한 여러 장치를 내장하고 있습니다. 객.. 2021. 2. 23.
[Java] ArrayList ArrayList List는 가변적인 배열입니다. 일반적인 배열과 마찬가지로 순서있기에 인덱스 번호를 통해 접근할 수 있습니다. 하지만 배열은 크기가 고정되는데 비해 List 자료구조는 크기를 고정할 필요가 없다. 왜냐하면 필요한 크기만큼의 새로운 배열을 만들어서 기존 자료를 옮기는 형태이기 때문이다. 즉, 현재 배열의 데이터가 다 채워진 상태에서 새로운 데이터가 추가되려고 하면 리스트 계열의 클래스들은 새로운 배열을 만들어서 기존 데이터를 복사해버립니다. ArrayList 예제 add() 리스트 맨 마지막에 원소를 추가해줍니다. 특정 인덱스와 함께 인자를 넘겨주면 해당 위치에 요소를 넣을 수 있습니다. get() 해당 데이터 실제값을 복사해서 반환 remove() 변수에는 객체의 레퍼런스을 가지게 하고.. 2021. 2. 23.
[Java] main 함수 [Java] main 함수 public static void main(String[] args){ ... } 1. main() 메서드는 public 속성이다. 이는 다른 클래스에서 호출 가능함을 표시한다. 자바 응용프로그램이 실행을 시작할 때 자바 가상 기계(JVM)에 의해 호출되어야 하므로 public 속성으로 선언되어야 한다. 2. static 속성이다. main() 메소드가 포함된 클래스의 객체가 생성되기 전에 자바 가상기계에 의해 호출되므로 static 속성으로 선언되어야 한다. 3. 리턴 타입은 void 이다. 아무 값도 리턴하지 않기 때문에 void 리턴 타입이다. 4. 인자는 문자열 배열(String [])이 전달된다. 명령행에 주어진 모든 인자를 문자열로 처리하여 main() 메서드에 전달.. 2021. 2. 23.
[예제] Java 입출력 속도 비교 Java에서는 입·출력 하는 방식이 여러개 존재하는데, 이들의 속도를 비교하고자 합니다. - System.out.println - StringBuilder - BufferedoutputStream - BufferedWriter import java.io.BufferedOutputStream; import java.io.BufferedWriter; import java.io.OutputStream; import java.io.OutputStreamWriter; public class Solution { public static void main(String[] args) throws Exception { long starttime = System.currentTimeMillis(); // #########.. 2021. 2. 18.
반응형