(학) (공) (자)
01.10(8일차)
만석이
2024. 1. 10. 12:54
1교시
---객체지향--- 1.객체형태로 프로그램을 하는 방식을 지향하는방법 2.객체란 우리 실생활에 존재하는 모든것을 생각할수있다. 3.객체는 일반적으로 상태를 표현할수있고, 행동으로 실행할수 있는 모든것 4.객체를 중심으로 프로그램 구조를 설계하고 프로그래밍하는것 ---class란?--- 1.객체를 생성하기 위한 설명서 2.어떤 물건을 만들기위한 메뉴얼 3.항상 클래스를 기반으로 객체를 생성해야한다. 4.하나의 클래스로 여러개의 객체를 생성할수있다. ---class종류--- 1.실행용 클래스 프로그램 전체에서 단 하나만 존재 프로그램의 실행을 맡고있다. main메서드를 가지고있고, 다른클래스에서 사용되지않는다. 2.참조자료형 클래스 다른 클래스에서 사용할 목적으로 생성하는 클래스 ---class 기타설명--- 1.하나의 클래스가 위 두 역할을 모두 수행할수있다. 2.다만 유지보수와 객체 지향 프로그래밍의 특징인 모듈화를 고려해 별도로 분리작성하는것이 좋다. 3.일반적으로 하나의 프로그램에서 실행용 클래스 1개를 제외한 나머지 클래스는 모두 참조형 클래스이다. 4.파일명에있는 클래스만 public을 쓸수있다.(하나의 클래스에 하나만 존재가능하다.) 5.추후 유지보수의 편리성과 클래스 재사용을 고려해 하나의 파일에 한개의 클래스를 작성하는것을 추천한다. ---class의 선언--- 1.접근제한자 접근제한자 class 클래스명{ } ---class 규칙--- 1.영어 대소문자를 사용할수있으며 보통 첫 글자는 대문자를 사용한다. 2.숫자를 사용할수있으로 첫 글자로는 사용할수없다. 3.특수문자는 $,_만 사용 가능하다. 4.자바 예약어는 사용할수없다.(자바에서 제공되는 클래스 포함) 5.같은 패키지 안에서는 import 를 안해도된다. ---객체/인스턴스--- 객체(new가 붙음) 1.물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고, 다른 것과 식별 가능한 것을 말한다. 2.객체는 Heap메모리 영역에 저장이된다.(변수는 stack에 저장된다.) 인스턴스 1.클래스가 붕어빵 틀이라면, 그 틀을 통해 생성된 객체(붕어빵) 하나하나를 해당 클래스의 인스턴스라 한다. 2.ex) Cat객체는 Cat클래스의 인스턴스다 ---대입--- 방법1 Cat cat; cat = new Cat; 방법2 Cat cat= new Cat(); |
2교시
---class구성--- 필드(field) 1.객체가 가져야할 데이터의 상태를 저장하는 변수 2.(필드,멤버변수,전역변수) 3.필드의 값을 초기화 하지 않으면 객체 생성시 자동으로 값이 기본값으로 초기화된다. 4.필드는 클래스에 포함된 요소이자, 객체를 생성한 후 객체가 가지는 데이터이기도 하다. 5.따라서 객체를 생성한 후 그 객체의 필드를 사용할수있다. ---출력--- 값 초기화 car.wheel =5; 변수명.필드 ex) System.out.println("바퀴의 개수는"+car.wheel); Car클래스의 wheel객체의 값을 다시 재정의 가능(기존wheel=4) Car변수의 wheel필드를 출력하였다. ---재활용--- //Car1 Car car1 = new Car(); car1.wheel =5; System.out.println("Car1 바퀴의 개수는"+car1.wheel); //Car1 Car car2 = new Car(); car1.wheel =3; System.out.println("Car2 바퀴의 개수는"+car2.wheel); 이런식으로 여러개의 인스턴스를 만들수있다. Car1=5 Car2=3 출력된다. ---Method--- 1.클래스 안에서 특정 기능을 수행하기 위해 코드들을 따로 하나의 블럭에 묶어놓은 집합 2.필요에 따라 이 집합을 호출해서 사용할수있다. 3.반복되는 문장들을 묶어서 메서드로 작성해놓으면 필요할때마다 재사용이 가능하며 중복되는 코드를 제거할수있다. 4.메서드는 정의부,호출부를 구분 5.메서드의 정의는 무조건 메서드 밖에서 / 호출은 무조건 메서드 안에서 해야한다. ---선언--- 1.메서드는 크게 머리(header) 와 몸체(body)로 구성이 되어있다. 2.접근제한자 반환형 메서드명(매개변수(필수X) ){ (작업할 내용); return 반환값; } ---접근제한자--- 클래스/메서드/필드에 대한 접근을 어느 범위까지로 제한하느냐에 대한 지시어 public 모든접근을 허용. 같은 프로젝트 내의 모든 객체들이 사용할수있도록 허용 private 현재 클래스 내에서만 사용을 허가 protected 상속관계의 객체들에서만 사용을 허가 default 같은 패키지내의 객체에만 사용을 허가(아무것도 안쓰면 default) ---반환형--- 1.메서드가 처음부터 끝까지 수행을 마친후 반환해야하는 값이 있을경우 기입한다. 2.int,bolean등의 기본자료형을 포함하여 String,사용자가 만든 참조클래스도 사용 가능 3.아무것도 반환하지 않을 때는 void를 써준다. ---메개변수--- 1.매개변수는 외부에서 해당 매서드를 통해 특정 값을 전달하고자 할 때 그 특정 값을 받아서 매개변수에 대입하고 변수를 메서드 내부에서 사용할 수 있는 변수 2.소괄호 안에 내가 전달받고자 하는 데이터의 변수를 선언하면 된다. 3.여러개라면 ,를 기준으로 여러개를 선언하면 된다. ---순서--- 정의해준다 ->호출한다. ->실행한다.->호출한곳 으로 돌아온다. |
3교시
---return-- //Bus Bus bus = new Bus(); String result= bus.take(5000); System.out.println(result); 1.return의 반환값을 result 변수에 담아서 사용할수있다. 2.반환목적이 아닌 반복문을 끝내는 목적으로도 사용할수있다. ---변수의 종류--- 1.지역변수 중괄호 지역내에서 선언된 변수, 메서드의 매개변수, for문의 초기식 2.객체변수 참조용 클래스 안에서 만들어진 변수 객체가 생성될때 객체별로 다른 값을 가질 수있다. 3.클래스변수 참조용 클래스 안에서 만들어지지만 타입 앞에 static이 있는 변수 인스턴스 변수는 객체마다 다른 값을 가지지만 클래스 변수는 모든 객체가 고유한 값을 갖는다. 4.전역변수 중괄호 밖에서 선언된 변수 ---(매개변수)예제1--- //두 수를 더하여 반환하는 add함수 작성하고 호출하여 결과확인하기 public int add(int x,int y) { return x+y; } int result = mt.add(10, 5); System.out.println("add()의 결과 : "+result); ---(매개변수)예제2--- //1~n까지의 총합을 출력하는 total함수를 작성하고 결과 확인하기 public void total(int n) { int result=0; for(int i=1; i<=n; i++) { result += i; } System.out.println("n:까지의합은: "+result); ---과제--- //(과제) //반지름을 매개변수로 받은 후 원의 넓이를 구하는 메서드인 circleArea만들기 //반지름을 매개변수로 받은 후 원의 둘레를 구하는 corcleRound메서드 만들기 //단, circleArea는 값을 반환 받아서 main에서 결과보기 //원의 넓이를 구하는 공식:3.14*반지름*반지름 //원의 둘레를 구하는 공식:2*3.14*반지 |