初识面向对象

第一章 前言介绍

1 面向对象 与 面向过程的区别

  • 都是一种思想,思维方式,思考问题的角度.
  • 面向过程 : "关注实现过程|步骤,需要通过几步完成?"然后一步一步执行
  • 面向对象 : "关注我该找谁来完成 ?“实现步骤不关注,只关注这个"谁”,他就是对象
  • 面向对象是依托于面向过程的

2 面向对象优点

  • 更贴合于显示生活中人们的思考角度
  • 面向对象更贴合生活中管理者,面向过程更贴合与执行者
  • 将复杂的问题简单化

第二章 类与对象

1 面向对象进行编程

1.1 分析

  • 将程序与生活紧密联系
  • 类 : 描述图纸|模板,抽象的事物
  • 对象 : 描述生活中真实存在的事物|实例,具体的事物
  • 先有类,才能根据类创建对象

1.2 类与对象的关系

  • 特殊到一般,具体到抽象。
  • 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
  • 类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属
    性。
  • JDK提供了很多类供编程人员使用,编程人员也可定义自己的类。

1.3 模板|图纸类|javabean的定义:

注意: 一个方法的形参类型可以为自定义的引用数据类型(图纸类|Javabean类型)

public class 类名{
			//属性--> 成员变量
			public 数据类型 属性名 = 赋值;
			public 数据类型 属性名;
			
			//功能 --> 成员方法
			public 返回值类型|void 方法名(参数列表){
				方法体;
				[return 返回值;]
			}
		}
public class Class001_Phone{ 
	//属性 : 品牌,颜色,价格,尺寸
	public String brand;
	public String color;
	public double price;
	public double size;
//功能 : 打电话
public void call(){
	System.out.println("从前有个人长得像电话,出门就被打了...");
	}
}

1.4 思考:

  • 手机能做什么? --> 打电话,打游戏,聊天… --> 动词 --> 成员方法(不加static修饰的成员方法) --> 功能
  • 手机有什么特点|特征 --> 品牌,颜色,价格,尺寸… -->名词 --> 成员变量 --> 属性

1.5 测试类

手机测试类:

  • 导包
    不需要导包的类 :
    1)java.lang包下的类
    2)同包下的类

  • 创建类型的引用|创建对象 new具有创建对象的能力
    引用数据类型 引用 = new 引用数据类型();

  • 使用
    使用属性(赋值|获取值)
    引用.属性名
    使用功能
    引用.功能名字(参数列表)

    public class Class002_PhoneTest{
    public static void main(String[] args){
    //创建类型的引用|创建对象 new具有创建对象的能力
    Class001_Phone phone = new Class001_Phone();
    //属性赋值
    phone.brand=“华为”;
    phone.color=“白色”;
    phone.size = 5.5;
    phone.price = 6999;

      //属性获取
      System.out.println(phone.color);
      System.out.println(phone.brand);
      System.out.println(phone.size);
      System.out.println(phone.price);
      
      //使用功能
      phone.call();
      phone.call();
      phone.call();
      }
    

    }

1.6 对象内存分析图

请添加图片描述

2 成员变量默认值

2.1引用数据类型 :

  • null

2.2 基本数据类型 :

  • 整数 : 0

  • 小数 : 0.0

  • 布尔 : false

  • 字符 : 空字符 ‘\u0000’

3 面向对象实例

3.1 蛋糕师制作蛋糕

3.1.1 代码分析
  • 蛋糕师制作蛋糕
    分析 : 涉及到了几种事物

​ 实体类 :

​ 蛋糕类
​ 属性 : 形状 口味 大小 价格
​ 功能 : 展示细节(打印所有属性的值)

​ 蛋糕师类
​ 属性: 姓名 性别 等级
​ 功能: 制作蛋糕

  • 注意: 方法的参数与返回值类型都可以为任意类型
    基本数据类型
    引用数据类型(包括自定义的实体类)
3.1.2 蛋糕类
//蛋糕
class Cake{
    //形状   口味   大小   价格
    public String shape;
    public String taste;
    public int size;
    public double price;

//展示细节(打印所有属性的值)
public void show(){
    System.out.println(shape+"--->"+taste+"-->"+size+"-->"+price);
}
}


3.1.3 蛋糕师类
class Caker{
    //姓名  性别   等级
    public String name;
    public boolean gender;
    public int level;

//制作蛋糕
//返回值 : Cake蛋糕
//参数 : String shape,String taste,int size,double price
public Cake makeCake(String shape,String taste,int size,double price){
    //制作蛋糕对象
    Cake cake = new Cake();
    cake.price = price;
    cake.size = size;
    cake.shape = shape;
    cake.taste = taste;
    return cake;  //返回的是一个蛋糕对象的地址
}

}
3.1.4 测试类
public class Class001_Caker {
    public static void main(String[] args) {
        //蛋糕师
        Caker caker = new Caker();
        caker.name = "胡歌";
        caker.gender =  false;
    Cake cake = caker.makeCake("椭圆形","火锅味",8,300);
    cake.show();
}
}


3.2 冰箱装大象

3.2.1 代码分析
  • 把大象装进冰箱一共分几步?
    1.冰箱门打开
    2.大象装进去
    3.冰箱门关上
  • 涉及到了几种事物 :
    冰箱类
    属性 : 品牌 颜色 大小
    功能 : 开门 关门 存储大象
    大象类
    属性 : 品种 颜色 姓名
    功能 :
3.2.2 冰箱类
//冰箱
class Fridge{
    //品牌  颜色  大小
    public String brand;
    public String color;
    public double size;

//开门  关门   存储大象
public void open(){
    System.out.println("冰箱门打开了");
}
public void close(){
    System.out.println("冰箱门关上了");
}
public void save(Elephant ele){
    System.out.println("一头叫做"+ele.name+"的大象被装进冰箱了...");
}

}
3.2.3 大象类
//大象
class Elephant{
    //品种  颜色  姓名
    public String type;
    public String color;
    public String name;
}
3.2.4 测试类
public class Class001_ElephantTest {
    public static void main(String[] args) {
        //大象
        Elephant ele = new Elephant();
        ele.name="云云";
        ele.type="亚洲象";
        ele.color="白色";

    //冰箱
    Fridge fridge = new Fridge();
    fridge.brand="海尔";
    fridge.color="白色";
    fridge.size=50;

    //步骤
    fridge.open();
    fridge.save(ele);
    fridge.close();
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值