JAVA面向对象

JAVA面向对象

一,面向对象与面向过程

面向对象与面向过程区别:

​ 都是一种思想,思考问题的角度,思维方式
​ 面向过程: 关注"我应该如何实现?“按照步骤一步一步实现就可以了
​ 面向对象: 关注"我应该找谁完成?” 这个谁就是对象,对象如何完成不关注
面向对象依赖于面向过程

面向对象思想的好处:

​ 1.更符合现实生活中人们的思维
​ 2.面向对象更贴合管理者的思维角度,更贴合执行者的思维角度
​ 3.面向对象可以将复杂的问题简单化

二,如何使用面向对象进行编程

如何使用面向对象进项编程:

​ 就是要让程序与现实生活紧密联系
​ 提出两个概念
​ 类 : 定义一些列事物的共性->图纸|模板|模具
​ 对象 : 表示显示生活中的具体事物 --> 实例
​ 根据类构建对象,因为现有图纸才能造车

自定义类:

​ 自定义的类也是引用数据类型
​ 分析步骤:
​ 1.手机能做什么? 功能能力–>动词 --> 打电话,聊天,打游戏,上网… -->成员方法 : 目前不用static修饰的方法
​ 2.手机有什么特征|特点? 属性–>名词 --> 尺寸 价格 颜色 品牌 … -->成员变量

模板:

public class 类名{
    //成员变量-->特征
    修饰符 数据类型 变量名 = 赋值;
    //成员方法-->功能
    修饰符 返回值类型|void 方法名(参数列表){
        方法体;
    }
}

自定义手机类

public class Phone {
    //成员变量->属性
    //尺寸 价格  颜色  品牌
    public double size;
    public int price;
    public String color;
    public String brand;

    //成员方法->功能
    // 打电话
    public void call(){
        System.out.println("从前有一个人长得像电话,出门就被打了...");
    }
}

使用手机类

public class Class002_PhoneTest {
    public static void main(String[] args) {
        //1)创建对象
        Class001_Phone p = new Class001_Phone();
        //根据引用p就可以操作新创建的收集对象
        //2)根据对象使用
        p.color = "白色";
        p.brand = "华为";
        p.size = 6.6;
        p.price =6999;

        System.out.println(p.color);
        System.out.println(p.brand);
        System.out.println(p.size);
        System.out.println(p.price);

        p.call();
    }
}

对象内存分析图

对象内存分析图

三,new关键字的作用

new关键字做的事情:

​ 1.在堆中为对象开辟一块内存空间,并且同时成员变量跟随对象进入到堆内存并附默认值
​ 2.调用构造器为对象初始化信息
​ 3.将对象的地址返回给引用

四,构造器

构造器|构造方法|构造函数:特殊的方法
作用:只能为对象初始化信息(为成员变量第一次赋值),不是用来创建对象
使用:只能跟随new关键字一起使用

定义:

修饰符 类名(参数列表){
    ...
}

不需要返回值与void
可以根据需求定义return,提前结束构造器的作用

注意:

​ 如果一个类中没有显示定义构造器,编译器会默认为类提供一个空构造(没有参数的构造器)
​ 如果一个类中有显示定义构造器,编译器不会为我们提供任何构造器
​ 构造器也是特殊的方法,可以构成方法的重载

总结:

​ 如果创建对象的同时就能够确定成员的初始值,调用带参构造为对象初始化信息
​ 如果创建对象的时候不能确定成员变量的值,调用空构造为对象初始化信息,确定属性值的时候再赋值

public class Constructor {
    public static void main(String[] args) {
        //创建对象
        Dog d= new Dog();
        //为成员赋值
        d.name = "斑点";
        d.type = "二哈";
        d.lookDoor();

        //创建对象的同时为对象的成员赋值
        Dog dog = new Dog("小花");

        dog.lookDoor();

        Dog dog2 = new Dog("二狗子","中华田园犬");
        dog2.lookDoor();
    }

}

class Dog{
    //成员属性
    public String name;
    public String type;

    //空构造
    public Dog(){
        System.out.println("空构造...");
    }

    //带参构造
    public Dog(String dogName){
        System.out.println("1个参数构造...");
        name = dogName;
    }
    
    public Dog(String dogName,String dogType){
        System.out.println("2个参数构造...");
        name = dogName;
        type = dogType;
    }
	//行为
    public void lookDoor(){
        System.out.println(type+"品种的"+name+"正在看家...");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值