面向对象简解
一.面向对象与面向过程的区别
我要洗衣服
面向过程: 我拿出衣服,我放入盆中.我加水,我加洗衣粉,我等待浸泡,我搓…(好累)
面向对象: 我把衣服放入全自动洗衣机(舒服啊,马飞)
二.面向对象的设计思想
面向对象的基本思想是在系统的构造中运用人类的自然思维方式,当然,一切要从现实世界中客观存在的事物出发
面向对象更加强调运用人类中日常的思维逻辑中经常采用的思想方法与原则
三.对象和类的概念
-对象:
1.计算机语言对问题域中事物的描述
2.对象包括属性和方法
-类 :
1.用于描述同一类型对象的抽象概念
2.类中定义了这一类对象的静态及动态属性(后面讲)
类可以看成一类对象的模板,
对象可以看成该类的一个具体实例。
例子:根据需要我们要做一个手抓饼
首先要有一个菜谱{类},
里面有原材料(成员属性)
还有方法(成员方法)
手抓饼类{
饼的形状
鸡蛋的量
烤肠的数量
烤制时间
其他配料
制作过程
}
用java写出
public class cake{
public String shape; // 饼的形状
public int flour; //面粉的量
public int eggs; //鸡蛋的量
public int bakeTime; // 烤制时间
public String others; // 其他配料
// 制作
public void MakingCakes(){
System.out.println(“放入” + flour + “的面粉,加入” + eggs+ “鸡蛋…”);
}
}
上面的就是类,也是模板
现在我们需要一个对象(做饼的大师),他来了,他动了
class Master{
String name; // 名字
public Cake MakingCakes(){
Cake cake = new Cake();
cake.shape = “麻将型”;
cake.flour = 50;
cake.eggs = 5;
cake.bakeTime = 5;
cake.others = “香菜,生菜,地沟油”;
return cake;
}
四. java与面向对象
对象: 它是java程序的核心,万物皆对象(没对象可以new一个)
类: 用来创建同一类型的“模板”,在一个类中定义了该类对象所具有的成员变量以及方法
成员变量=属性 方法=功能
1).java类的定义
//用class关键字定义一个类,例如
class Person{
// 成员变量
int id;
int age = 30;
// 方法定义
int getAge(){return age;}
void setAge(int a){age = a;}
}
成员变量的格式为:
[<modifiers>] type <attr_name>[=defaultValue];
//例如:
int id; private int age = 20;
方法的格式为;
[<modifiers>] <return_type> <name([<argu_list>]){
[<statements>]
}
//例如:
public int getAge(){ return age;}
2)成员变量
1.成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)
2.定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
成员变量的作用范围为整个类体
3)Java面向对象基本概念
1.Java语言中除基本类型之外的变量类型都称为引用类型
2.Java中的对象是通过引用对其操作的。
例如:
Dog dog;
dog = new Dog();
4)对象的创建和使用
必须使用 new 关键字创建对象
new 的作用:
①会在堆中为相应类型分配空间
②会调用相应的构造方法来初始化对象
③将在堆中开辟的空间的地址返回回来
五.方法
Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:
[修饰符1 修饰符2….] 返回类型 方法名(形式参数列表){
Java语句;。。。
}
形式参数:在方法被调用时用于接收外接输入的数据
实参:调用方法时实际传给方法的数据
返回值:方法在执行完毕后返还给调用它的环境的数据
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void
Java语言中使用下述形式调用方法:对象名.方法名(实参列表)
如: car.name //车的名字
六.构造器
构造器: 在创建对象时(new),必会调用一个特殊的方法,这个方法是初始化对象信息的为new服务的。
使用 new + 构造方法创建一个新的对象。
如: Car car = new Car();
构造函数是定义在 Java类中的一个用来初始化对象的函数。
构造函数与类同名且没有返回值。
举例: Person类的构造函数
public class Person {
int id;
int age;
Person(int n, int i){
id = n;
age = i;
}
}
创建对象时,使用构造函数初始化对象的成员变量
public class Test {
public static void main(String[] args) {
Person tom = new Person(1, 18);
Person jeck = new Person(2, 20);
}
}
构造方法的特点:
1)名称必须和类名一致,与类名相同
2)没有返回类型|void
3)构造器可以存在return,return有选择的跳出构造器
4)不能随便调用,和new在一起使用,其他时候不能调用
5)修饰符不能为 final abstract static
作用:
初始化对象信息,不是用于创建对象的
空构造:
没有参数的构造器、无参构造
方法的重载
方法的重载是指一个类中可以定义有相同的方法名,但参数不同的多个方法。调用时,会根据不同的参数列表选择对应的方法。
七、引用
引用的特点:
1)同一时刻一个一引用只能指向一个对象
2)一个对象可以被多个引用所指向,其中一个对其进行更改,该对象的其他引用也可见该变化
3)Java一切为值传递,引用拷贝地址
约定俗成的命名规则
类名的首字母大写
变量名和方法名的首字母小写
运用驼峰标识
总结:对象的创建和使用
必须使用 new 关键字创建对象
使用对象引用.成员变量来引用对象的成员变量
使用对象引用.方法(参数列表)来调用对象的方法
同一类的每个对象有不同的成员变量存储空间
同一类的每个对象共享该类的方法
非静态方法是针对每个对象进行调用