面向过程的描述
第一步:杀死大象
第二步:分割大象的尸体,这里面包含很多小步骤
第三步:打开冰箱门
第四步:将分割的大象尸体依次放入冰箱
第五步:关上冰箱门
面向对象
找一个对象让这个对象把大象放到冰箱里
面向对象与面向过程的区别
a.都是看待问题的一种思维方式,都能解决问题
b.面向过程着眼于所有的事情按照步骤来实现
c.面向对象着眼于找到一个具有特殊功能的对象,委托这个对象去做某件事情。
注意:面向对象是一种思想,并不是一门编程语言。
类的介绍
类是用来描述一组对象静态和动态的特征
静态的特征称之为属性,例如:身高,体重,颜色,大小
动态的特征称之为行为,例会,会吃饭,会喝水,会陪主人玩…
具体到代码中:
属性就是变量
行为就是方法
所以总结起来,类中只能有变量和方法
语法
package com.qf;
/**
* @author 作者:Eric E-mail:15665627080@163.com
* @version 创建时间:2020年6月8日 上午11:10:46
* 狗类
* 静态的属性(外观:眼睛能看出来的):颜色,品种,性别,年龄
* 动态的功能(行为,眼睛看不到的东西):使主人开心,陪主人玩
*/
public class Dog {
String color;//颜色
String type;//品种
char sex;//性别
int age;//年龄
public void playWithMaster(){
System.out.println("陪主人玩");
}
public void makeHappy(){
System.out.println("使主人开心");
}
public String makeugle(){
return "ugle";
}
}
如何设计类
1.设计类时,首先想好类名,做到见名知意,并且首字母大写
2.考虑该类所拥有的的属性(眼睛能看的出的),考虑其值,设计成相对应的数据类型,不要忘了注释
eg:int age;//年龄
3.考虑该类型的对象拥有什么样的功能或者行为,设计为方法
注意:设计一个类的时候,考虑他的静态和动态时,需要设计的有颗粒度
属性和行为设计的不能太通用
对象
我们在设计类的时候,更多的像是在定义这个类型的对象拥有什么样的外表和内在,类似定义规则
对象是通过类去new出来的
测试类来new对象,不要在类中直接写main方法,需要开一个新的测试类,然后写main方法
public static void main(String[] args) {
Dog d=new Dog();//new是关键字,Dog必须和class名相同
d.color="黄色";
d.high=100;
d.name="大黄";
System.out.println("姓名"+d.name);
System.out.println("颜色"+d.color);
System.out.println("身高"+d.high);
d.playWithMaster();
d.swimming();
}
构造方法
作用:通过new关键字去调用该方法,构造(初始化)对象
语法
[权限修饰符] 方法名(参数列表){
方法体;
}
注意: 1.方法名必须和类名完全一致
2如果类中没有自定义构造方法,系统默认给我们提供了一个公有的无参构造方法
public Dog(){
}
3.如果写了构造方法,那么系统则不会提供该方法
理解:构造方法是用来构造(初始化)对象
public Dog(){
}
public Dog(String color,String type,char sex,int age){
this.color=color;
this.type=type;
this.sex=sex;
this.age=age;
}
this关键字
this指代 调用当前方法的那个对象
super关键字指代当前对象的直接直接父类对象
引用数据类型
1.引用在一定程度上等同于对象,但不是对象。可以把引用理解为小名
2.凡是new出来的,都是一个新的对象,无论长的有多相似
匿名对象
没有名字的对象 用完一次就没了
new Flower("白色", "栀子花", true);