티스토리 뷰

카테고리 없음

객체지향 복습

장꾸꾸 2020. 10. 12. 12:42

11. 객체지향프로그래밍(OOP : Object Oriented Programming)
  ★자바의 메모리구조
     : OS에 의하여 프로그램이 수행되면 JVM은 OS로부터 적절한 
       크기의 메모리공간을 얻어내게 된다. 그리고 얻어낸 메모리 
       공간을 JVM은 3영역으로 나누어 관리한다
   ① 메소드(method area)영역 : 메소드의byte코드 ,클래스의 전역변수,static 멤버변수
   ② 스택(Stack) : 매개변수, 지역변수 (메소드의 실행이 종료되면 자동반환)
   ③ 힙(Heap) : 클래스객체, 배열객체, 문자열객체
                        (new연산자 사용, 객체가 사용하는 메모리공간)
-----------------------------------------------------------------------------------------------------
  ★객체지향의 중요한 3가지
    (1) 캡슐화(Encapsulation)
         :데이터보호, 재사용성  - 데이터은닉화
    (2) 상속성(Inheritance)
         :이미 만들어진 코드에 새로운 코드를 추가
          (프로그램 개발속도 증진, 프로그램 전체의 오류를 방지)
    (3) 다형성(Polymorphism)
         :상속받은것을 그대로 사용하지 않고 사용자 입맛에 맞게 바꾸어 사용
    

 

package objectex;
/*  -(private) , +(public) , #(protected) 접근지정자
클래스명 : Person
+name:String            public String name;
+age:int					
+score:float

+setPerson(na:String, a:int, s:float) : void
+viewPerson():void 
*/
//ObjectEx1.java  ----> ObjectEx1.class, Person.class
class Person{ // 필드/ 멤버함수
	public String name;
	public int age;
	public float score;
	
	public void setPerson(String name, int age, float score) {
		this.name = name;
		this.age = age;
		this.score = score;
	}
	public void viewPerson() {
		System.out.println("이름" + name);
		System.out.println("나이" + age);
		System.out.println("점수" + score);
	}
}
public class ObjectEx1 {
	public static void main(String[] args) {
		Person ob1 = new Person(); // new Person : 실제로 heap영역 메모리를 할당하는 instance
        							// instance 공간에는 필드만 잡히고 메서드 할당X
                                    //메서드는 처리 스크립트일 뿐.
                                    // instance의 데이터를 가져다가 메서드가 처리해주고 이 처리값이 
                                   	// 객체 Object
		ob1.setPerson("개나리", 22, 73.5f); //객체(Object) = field + method 
		ob1.viewPerson();
		
		Person ob2 = new Person();
		ob2.setPerson("민들레", 25, 93.5f);
		ob2.viewPerson();
	}
}

 

 

package objectex;
class User{
	public String name;
	public int a = 97;
	public int b = 55;
	public int c = 79;
	
	public void setUser(String name, int a, int b, int c) {
		this.name = name;
		this.a = a;
		this.b = b;
		this.c = c;
	}
	public int getTotal() {
		return a+b+c;
	}
	public String getUser() {
		return "나의 이름은"+ name + "이고 총점은" + getTotal() + "점입니다";
	}
}
public class ObjectEx2 {
	//TODO 나의 이름은 강호동이고 총점은 231입니다.
	public static void main(String[] args) {
		User uu = new User();
		uu.setUser("강호동", 97, 55, 79);
		System.out.println(uu.getUser());
	}
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함