一、面向对象与面向过程的区别:
①所处的角色不同:前者指挥者,后者执行者;②所需知道的事情不同:前者知道哪些是做这些事情的人就可以,不需了解具体的事情操作的过程。后者需要具备应有的技能来做这些事情。
二、面向对象的基本操作过程
指挥者采用面向对象思想,通过创建类,来创建统一的属性值【成员属性】和(做事的)方法【成员方法】。
通过创建的类或者jdk已有的类,来创建具体的对象,属性值明确,方法明确。
举例:创建类
View Code
View Code
1 package com.oracle.demo02; 2 3 public class Person { 4 private String name;// 此时外部的类不能访问 5 private int age;// 隐藏实现细节 6 // 使用方法,提供接口进来的值 属性都私有化,并提供setXxx getXxx方法对其进行访问。 7 8 public void setName(String name) { 9 this.name = name; 10 } 11 12 // 使用取值、、用于给出用户反馈 13 /* 14 * public String getName(){ return name; } 15 */ 16 public void setAge(int a) { 17 if (a >= 0 && a < 149) { 18 age = a; 19 } else { 20 System.out.println("该年龄不可信"); 21 } 22 23 } 24 25 public int getAge() { 26 System.out.println("get"); 27 return age; 28 } 29 30 public void speak() {// 方法可以被外界访问 31 // name.age此时为成员变量,非局部变量 32 System.out.println("我的名字是" + name + "今年" + age + "岁。"); 33 } 34 35 // 在person类中定义功能,判断两个人是否同龄人 36 public boolean people(Person p) { 37 return p.age==this.age;//此时的this,指的是谁调用该方法就是谁 38 //传入两个,一个通过调用传入,一个通过形参传入 39 } 40 }
举例:创建对象及方法的调用
1 package com.oracle.demo02; 2 3 public class Demo01 { 4 public static void main(String[] args) { 5 Person p = new Person(); 6 p.setName("张三"); 7 p.setAge(35); 8 p.speak(); 9 Person p2 = new Person(); 10 p2.setName("xiao张三"); 11 p2.setAge(35); 12 p2.speak(); 13 //比较两人是否为同龄人 14 boolean flag=p2.people(p); 15 System.out.println(flag); 16 } 17 }
1、创建冰箱的对象
冰箱 bx = new 冰箱();
2、调用冰箱的功能
对象.功能();
bx.打开();
bx.存储(new 大象());
bx.关闭();
public class 类名 {
//可编写0至n个属性 成员变量
数据类型 变量名1;
数据类型 变量名2;
//可编写0至n个方法 成员方法
修饰符 返回值类型 方法名(参数){
执行语句;
}
}
注:此时的成员方法的修饰符为public,而在测试类main中修饰符为public static
三、对象调用方法内存图
四、类和对象的区别
前提:面向对象的思想力求在设计类的时候,其成员属性和成员方法与现实要求一致。
五、局部变量和成员变量的区别
六、基本数据类型和引用数据类型的参数传递