본문 바로가기

JAVA/복습

(50)
객체와 클래스 예를 들어 우리가 자동차를 만든다고 가정해보자. 자동차를 만들려면 무엇이 필요할까? 만들 자동차의 설계도가 필요하다! 객체지향 프로그래밍에서도 마찬가지이다. 메모리에서 사용하고 싶은 객체가 있다면 우선 설계도로 해당 객체를 만드는 작업이 필요하다. 자바에서 설계도가 바로 '클래스' 이다. 클래스에는 객체를 생성하기 위해서 필드와 메소드가 정의되어 있다. 클래스로부터 만들어진 객체를 해당 클래스의 '인스턴스'라 한다. 즉, 자동차란 객체는 자동차 클래스의 인스턴스와 같다. 그리고 클래스로부터 객체를 만드는 과정을 '인스턴스화'라고 한다. 그래서 이게 무엇을 뜻하는 걸까? 하나의 클래스로부터 여러개의 인스턴스를 만드는 것이 가능해진다. (동일한 설계도로 여러대의 자동차를 만드는 것과 같음) - 클래스 선언 ..
객체 지향 프로그래밍 객체 지향 프로그래밍 : 어떤 제품을 만들 때 부픔을 먼저 개발하고 이 부품들을 하나씩 조립해서 제품을 완성한다. 제품을 완성하듯이 소프트웨어를 개발할 때에도 부품에 해당하는 객체를 먼저 만들고, 그 객체를 하나씩 조립해서 완성된 프로그램을 만드는 것. 이것이 객체 지행 프로그래밍(OOP)라 한다. 자바의 객체 속성 (필드) 동작 (메소드) 객체들은 각각 독립적으로 존재하고, 다른 객체와 서로 상호작용하며 동작한다. 객체들 사이의 상호작용 수단 이것이 '메소드' 이다. 이때, 객체가 다른 객체의 기능을 이용하는 것이 바로 메소드의 호출. 메소드 호출의 형태 리턴값 = 전자계산기객체.메소드(매개값1, 매개값2 ...); int result = Calculator.add(10, 20);
null과 NullPointerException null과 NullPointerException 차이 참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있다. null 값도 초기값으로 사용할 수 있기때문에 null로 초기화된 참조 변수는 '스택 영역'에서 생성된다. 참조 타입 면수가 null 값을 가지는지 확인 방법 " ==, != 연산을 수행하자" refVar == null //결과: false refVar != null //결과: true 예외 (Exception) 자바는 프로그램 실행 도중에 발생하는 오류를 예외라고 부른다. 예외가 발생하는 경우 1. 사용자의 잘못된 입력 2. 잘못된 코드 작성 이 중 참조 변수를 사용하면서 가장 많이 발생하는 예외 중 하나가 " NullPointerException "이 있다...
변수(variable) 변수는 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름. 프로그램은 변수를 통해 메모리의 '특정' 번지에 값을 저장하고 읽을 수 있다. 메모리에 값을 넣고 싶다면 변수를 선언하고 변수에 값을 지정하면 된다. 그러면 메모리의 어디에 저장하고, 어떤 방식으로 저장할지는 '프로그래밍 언어와 운영체제'가 정한다. 내가 공부하는 자바는 JVM! '하나의 변수에 동시에 두 가지 값을 정할 수 없다' 변수 선언 변수를 사용하기 위해서는 먼저 변수를 선언해야 한다. 데이터 타입 변수명 ; Ex) int a; 같은 타입의 변수는 콤마를 활용하여 한꺼번에 선언도 가능 int a,b,c; 예약어 해당 프로그래밍 언너에서 의미를 갖고 사용되고 있는 단어 (변수 이름으로 사용 불가능) 만약, 예약어로 변수이름을 선언하면..
기본타입과 참조형 타입 //기본형 int i = 4; //참조형 String str = new String("hello world"); 참조타입 참조형 타입은 기본형 타입을 제외한 모든 타입(배열도 참조형이고, 클래스도 모두 참조 타입) 참조형 변수 String str = new String("hello"); str 변수 앞에 기본형 타입이 아닌 String클래스가 적혀있다. 이퀄(=)뒤에는 new 다음에 생성자라는 것이 있다. new 라는 키워드는 객체를 메모리에 올려준다. 이렇게 메모리에 올라간 객체를 인스턴스라고 말한다. 메모리에 올라간 인스턴스를 가리키는 변수, 참조하는 변수, 레퍼런스 하는 변수가 str 이다. 참조한다. 레퍼런스 한다라는 것은 변수가 인스턴스를 가지고 있는게 아니라 말그대로 가리킨다는 의미이다. st..
for each 문 // for문 public class For { public static void main(String[] args) { int [] array = {1, 5, 3, 6, 7}; //for 문을 이용해서 array의 값을 한 줄씩 출력하세요 for(int i=0; i.array.lenth[i]; i++){ int a = array[i]; System.out.println(a); } } } // for each문 public class ForEach { public static void main(String[] args) { int [] array = {1, 5, 3, 6, 7}; //for each문을 이용해서 array의 값을 한 줄씩 출력하세요 for(int a : array){ System.out...
array public class ArrayExam { public int[] makeArray() { // 길이가 5인 정수형 배열 array를 만들어보세요. // array의 원소는 차례로 1, 2, 3, 4, 5 여야합니다. int[] array = {1,2,3,4,5}; // 아래는 결과 평가를 위한 코드입니다. 수정하지 마세요. return array; } //아래는 실행을 위한 코드입니다. 수정하지 마세요. public static void main(String[]args) { ArrayExam exam = new ArrayExam(); int [] array = exam.makeArray(); if(array.length==5 && array[0] ==1 && array[1] ==2 && array[2..
for문 public class ForExam { public static void main(String[] args) { //for문을 이용해서 1부터 100까지 숫자 중 짝수만 출력해 보세요 for(int i = 1; i