第三章:面向对象(1)

学习目标:

掌握面向对象的思想和相关知识

学习内容:

1、 面向过程和面向对象的设计思想 2、 Java类 3、 Java对象 4、 变量分类 5、 方法分类 6、 构造方法

学习时间:

1、 2021年4月11日

学习产出:

1、 技术笔记 1 遍 2、CSDN 技术博客 1 篇

面向过程和面向对象的设计思想

面向过程:

procedure oriented programming 缩写 POP

  • 分析出解决问题所需要的步骤,然后把步骤一步一步实现
  • 面向过程直接关注流程。

面向对象:

object oriented programming 缩写 OOP面向对象的编程语言

  • 以分类的方式进行思考和解决问题。
  • 面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理。
  • 面向对象的思想符合人类的认知习惯。

面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地,成为无源之水。

Java类

什么是类

​ 类是一个模板,它描述一类事物的属性(名词)和行为(动作)的集合。

​ 类是表示一个客观世界某类群体的一些基本特征抽象。

​ 比如:车类 狗类 鸟类

类的结构:

  • 成员变量:事物属性的描述
  • 方法:事物的行为;(可以做的事情)
  • 构造方法:用于创建对象;
  • 内部类: 即在类体中声明的类。
  • 块:一段没有名称的代码块

Java类的定义

第一步,发现类(此处发现狗这一类举例子)

​ 根据不同类型的狗,抽象出狗这一大类的概念

​ 类的声明格式为:

​ [访问修饰符] [修饰符] class Car{

​ }

    public class Dog {
     }

​ 访问修饰符有两种public,无(默认)

​ 修饰符:final,abstract

​ 关键词class用来定义一个类

​ 类名首字母大写

第二步:发现类的公有属性(成员变量)

名词:

​ 狗共有的特征:名字、颜色、年龄等…

声明成员变量格式:

​ [访问权限修饰符] [修饰符] type name [=defaultValue]

    String name;
    String colour;
    int age;
第三步:发现类的方法

动词:

​ 狗共有的行为:叫、跑、吃饭…

成员方法 类的行为(动词)

[访问权限修饰符] [返回值类]/void 方法名(参数类型 参数名){

System.out.println(“小狗吃饭”);

[return 返回值;]

}

public void speak(String a){
System.out.println(a+"汪汪汪");
}
public void run(){
System.out.println("小狗跑步");
}
public void eat(){
System.out.println("小狗吃饭");
}

Java对象

对象

​ 对象是类的一个实例,是以类为模板在内存中创建的实际存在的实例

对象的创建和使用

使用new关键字来创建对象 new Dog 创建Dog类的对象

Dog()使用类的构造方法初始化类

Dog xb声明一个与构造方法名称相同类型的变量

= 把在内存中对象存储的地址赋值给左边的xb对象

使用xb变量访问对象中的成员变量和成员方法

  • 同一类的每个对象有不同的成员变量存储空间
  • 同一类的每个对象共享该类方法
Dog xb = new Dog();
xb.name = "小白";
xb.colour = "white";
xb.age = 3;
xb.run();
xb.speak();
xb.eat();

类和对象总结

类是一类事物的抽象概念,是一个模型。对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例.。

所以创建对象的过程也叫实例化对象。

现实生活中先有对象后有类,而编程时先设计类后创建对象。

变量分类

按照数据类型分

  1. 基本数据类型:byte,short,int,long,float,double,boolean,char
  2. 引用数据类型:类,数组,接口…

按照位置变量分

  1. 成员变量:成员变量是定义在类中,方法体之外的变量。

    ​ 成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。

    ​ 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

    ​ 成员变量在创建对象的时候会从类中复制一份到对象中。

    ​ 成员变量可以被类中方法、构造方法和特定类的语句块访问。

    ​ 成员变量的作用范围为整个类体。

  2. 局部变量:在方法、构造方法或者语句块中定义的变量叫做局部变量

​ 局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型

​ 局部变量在使用前必须初始化赋值

​ 变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

方法分类

成员方法

​ (非static修饰的) 被对象调用.。 完成对象的功能(行为) 定义在类中

​ 语法格式:修饰符 返回值类型 方法名(参数列表){

​ 方法体语句;

​ [return 返回值]}

构造方法

​ 用来初始化对象的方法

  • 构造方法名与类名相同,且没有返回值,且不需要使用void修饰。

  • 作用:在构造方法中为创建的对象初始化赋值

  • 在创建一个对象的时候,至少要调用一个构造方法

  • 每个类都有构造方法。如果没有显式地为类定义构造方法,Java将会为该类提供一个默认构造方法,但是只要在一个Java中定义了一个构造方法后,默认的无参构造方法即失效。

方法重载

方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。

参数不同主要指三个方面:

  1. 数量不同(0,1,2…)
  2. 类型不同
  3. 顺序不同
public Dog(){//无参构造方法

    }
    public Dog(int a){//一个参数的构造方法
        age = a;
    }
    public Dog(int a,String n){//两个参数的构造方法
        age = a;
        name = n;
    }
    public Dog(String n,int a){//两个参数但是顺序不同的情况
        age = a;
        name = n;
    }
    public Dog(String n,String c){//两个参数但是数据类型不同的情况
        name = n;
        colour = c;
    }
    public Dog(int a,String n,String c){//三个参数的构造方法
        age = a;
        name = n;
        colour = c;
    }

在调用时会根据不同的参数表选择对应的方法。

        Dog xh = new Dog(3,"小黑");
        System.out.println(xh.name+"  "+xh.age+"岁");
        Dog xm = new Dog("小明",3);
        System.out.println(xm.name+"  "+xm.age+"岁");

注意:方法重载跟方法的返回值类型没有任何关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值