1. 객체지향 VS 프로세스지향
1 /* 2 * 理解一:人开门 3 * 面向过程:人 打开门 4 * 面向对象: 5 * 人{ 6 * 打开(){ 7 * 门。开开(); 8 * } 9 * }10 * 门{11 * 开开(){12 * }13 * }14 * 15 * 理解二:人把大象装进冰箱16 * 面向过程:17 * 1、打开冰箱;18 * 2、把大象放进去;19 * 3、关闭冰箱门;20 * 面向对象:21 * 人{22 * 打开(冰箱){冰箱.开开()}23 * 操作(大象){大象。进入(冰箱)}24 * 关闭(冰箱){冰箱。合上()}25 * }26 * 大象{27 * 进入(冰箱){}28 * }29 * 冰箱{30 * 开开(){}31 * 合上(){}32 * }33 */
2. 객체지향 프로그래밍은 클래스 설계에 중점을 둡니다!
2.1. 프로젝트나 프로젝트의 규모가 아무리 커도 클래스는 하나씩 구성되어야 합니다.
2.2. 수업은 자동차 제작을 위한 도면처럼 추상적입니다. 특정 자동차는 실제로 클래스의 인스턴스화인 도면에 따라 제작됩니다
1 /* 2 * 1、面向对象的编程关注于类的设计 3 * 2、设计类实际上就是设计类的成员 4 * 3、基本的类的成员,属性(成员变量或Field)&方法(Method) 5 */ 6 public class TestPerson { 7 public static void main(String[] args) { 8 Person p1 = new Person(); 9 p1.info();10 11 p1.name = "钟超";12 p1.age = 21;13 p1.sex = true;14 p1.info();15 16 p1.setName("张三");//p1.name = "张三"17 p1.info();18 19 Person p2 = p1;20 System.out.println("P1:" + p1);21 System.out.println("P2:" + p2);22 p2.info();23 24 p2 = new Person();25 System.out.println("P2:" + p2);26 p2.info();27 //实例化Scanner类的对象,通过此对象.nextXxx的方法进行调用,完成相应的功能;28 Scanner s = new Scanner(System.in);29 int i = s.nextInt();30 31 Person p3 = new Person();32 p3.info();33 }34 }35 //类:是抽象的。36 class Person{37 //1.属性38 String name;39 int age = 10;40 boolean sex;41 42 //2.方法43 public void eat(){44 System.out.println("人吃饭");45 }46 public void sleep(){47 System.out.println("人睡觉");48 }49 50 public String getName(){51 return name;52 }53 public void setName(String n){54 name = n;55 }56 57 public void info(){58 // eat();59 // sleep();60 System.out.println("name:" + name + "age:" + age + "sex:" + sex);61 }62 }
3. 프로젝트(또는 기능)를 완성하는 아이디어
3.1. 객체가 존재하는지 여부
3.2. 존재하는 경우 해당 클래스의 속성이나 메소드를 객체를 통해 직접 호출하면 됩니다.
3.3. 존재하지 않는 경우에는 해당 클래스의 객체를 생성해야 합니다. 클래스가 존재하지 않으면 클래스를 설계해야 한다고도 합니다.
4. 객체 지향 프로그래밍의 세 가지 주요 라인:
1. 클래스와 해당 구성 요소: 속성, 메서드, 생성자, 코드 블록, 내부 클래스
2. 객체지향 프로그래밍 기능: 캡슐화, 상속, 다형성(추상화)
3. 기타 키워드: 이 슈퍼 패키지는 정적 최종 추상 인터페이스를 가져옵니다...
클래스:
1. 클래스 디자인에 중점을 둡니다
2. . 클래스 구성 요소:
1. 속성(멤버 변수, 필드)
2. 메서드(멤버 메서드, 함수, 메서드)
3. 속성 정보:
4. 지향 객체 프로그래밍 아이디어 구현의 첫 번째 규칙:
2. 클래스의 객체를 인스턴스화합니다.
3. "object.property" 형식으로 완성합니다. 또는 "object.method" 특정 함수
6. 클래스 초기화 메모리 분석:
6.1. 메모리 분할 구조:
스택: 지역 변수, 객체 참조 이름, 배열 참조 이름
힙: 새로운 "Things"가 나옵니다. (예: 객체 엔터티, 배열 엔터티), 멤버 변수 포함
메소드 영역: 문자열 상수 포함
정적 도메인: 정적으로 선언된 변수
6.2. 이해를 바탕으로 기본을 학습해야 합니다. 생성된 클래스는 메모리에서 실행됩니다.
7. 메소드 오버로딩:
요구 사항: 1. 동일한 클래스에 있어야 합니다.
* 2. 메소드 이름은 동일해야 합니다.* 3. 메소드의 매개변수 목록은 다릅니다.
* 2. 매개변수 유형이 다릅니다.* 4. 메소드의 오버로딩은 메소드의 반환 값 유형과 관련이 없습니다.
위 내용은 5. Java의 객체 지향 VS 프로세스 지향의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!