java-类与对象基础

本文详细介绍了类与对象的概念,包括对象的定义、面向对象编程原理、类的结构(属性和方法)、类的使用,以及构造方法和成员方法的特性。通过实例阐述了面向对象编程的封装、继承和多态性,以及开发流程中的OOA、OOD和OOP阶段。
摘要由CSDN通过智能技术生成

1.类与对象的概念

1.1 什么是对象

对象:我们所⾯对的可以描述其具体形象的事物称为对象。对象可以简单理解为看得⻅摸得着的事物。

描述对象一般从两个方面:属性(特征),方法(行为)

属性:⽤于描述对象具有的特征

方法:用于描述对象具有的行为或功能

例如:描述一个电视机对象

属性: 用于描述对象具有的特征
          电视机: 属性(颜色,品牌,价格) 属性值(黑色,小米,2000)
          颜色: 黑色
          品牌: 小米
          价格: 2000
     方法: 用于描述对象具有的功能
          电视机:方法/功能(播放电视剧,看电影)
          播放电视剧()
开机()
关机()

1.2 面向对象编程

⾯向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的程序编程典范,同时也是⼀种程序开发的抽象⽅针。它可能包含数据、属性、代码与⽅法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提⾼软件的重⽤性、灵活性和扩展性,对象⾥的程序可以访问及经常修改对象相关连的数据。在⾯向对象程序编程⾥,计算机程序会被设计成彼此相关的对象。

1.3 面向过程和面向对象编程

⾯向过程只是针对于⾃⼰来解决问题。⾯向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,⾯向对象,更多的是要进⾏⼦模块化的设计,每⼀个模块都需要单独存在,并且可以被重复利⽤,增强可维护性,所以,⾯向对象的开发更像是⼀个具备标准的开发模式。

例如:

⾯向过程:针对开发中程序遇到的每⼀个问题,进⾏单个的编码解决。
⾃⼰做饭,买菜,洗菜,炒菜,⾃⼰吃
⾯向对象:只对结果,不管实现的细节。
到饭馆叫饭,⾃⼰吃

学习面向对象就是学习如何在代码中使用封装,继承,多态

(1)封装:保护内部的操作不被破坏; 安全性
(2)继承:在原本的基础之上继续进⾏扩充; 复⽤性
(3)多态:在⼀个指定的范围之内进⾏概念的转换。可扩展性

对于⾯向对象的开发来讲也分为三个过程:
OOA(⾯向对象分析)、OOD(⾯向对象设计)、OOP(⾯向对象编程)。

面向对象的最终目的是在保证功能实现的基础上,方便后期程序的维护。

2.类的概念

2.1 什么是类

具有相同属性和行为的对象,可以被归为一类。

类:将具有相同属性和方法的对象进行抽象,这就是类。包括属性和方法两大部分。

类限定了对象具有的特征属性和⾏为,因此可以将类看作对象的模板。通过⼀个类,我
们可以创建任意个对象,⽽被创建的同⼀个类任意个对象,都具有相同的属性和⾏为。

类是对象的模板。对象是类的实例。
类是抽象的概念,对象是具体的存在。

同一个类的对象,会具有相同的属性和方法,但是它们的属性值可以不一样,这样可以区分出不同的对象实体。

面向对象编程的步骤:

(1)定义所用对象的类型。

(2)用类型创建具体的对象。

(3)调用对象的属性和方法,完成程序处理。

2.2 类的结构

public class 类名{

        //成员属性

        //构造方法

        //成员方法

}

public class Student {
    // 属性: 成员属性,成员变量,全局变量
    // 姓名
    String name;
    // 性别
    String sex;
    // 年龄
    int age;
    // 身高
    double tall;
    // 方法: 成员方法,实例方法
    public void eat(){
    // this:当前对象
        System.out.println(this.name+"吃早餐");
    }
    public void study(){
        System.out.println(this.name+"学习java");
    }
}

2.3 类的使用

使用类创建对象,为对象赋值,并调用对象方法

public class Test {
    public static void main(String[] args) {
        // 使用类创建对象
        Student s1 = new Student();
        // 设置对象属性
        s1.name="张三";
        s1.sex="男";
        s1.age = 18;
        s1.tall = 1.7;
        // 调用对象方法
        s1.eat();
        s1.study();
    }
}

类的属性本质上是全局变量,是有默认值的。字符串:null 整形:0.0 布尔:false,而方法内的变量是局部变量,不赋值的时候无法使用

面向对象编程的步骤:
1.根据题目定义类: 定义属性和方法
2.使用类
a.创建测试类,定义main方法
b.在main方法中,使用类创建对象: 类名 变量 = new 类名();
c. 使用创建出来的对象,设置对象属性,访问对象属性,调用对象方法
  完成特定功能。

 3.构造方法

构造方法:在通过类创建对象的的时候,通过new关键字调用的方法成为构造方法。可以用于为对象属性设置初始值。

public class 类名{
    //无参构造
    public 类名(){}

    //有参构造
    public 类名(参数列表){
        //初始化属性
    }
}
//通过new调用构造方法,创建类的对象
类名 变量 = new 类名();

特征:

(1)构造方法是非常特殊的方法,方法名要与类名完全一样。

(2)构造方法不能写返回值。

(3)构造方法通过new关键字调用

(4)一个类中,可以定义构造,也可以不定义构造。当类中没有定义构造方法时,系统会提供默认的无参构造方法,当类中定义了构造之后,系统将不再提供默认构造。如果定义了有参构造,没有定义无参构造,将无法使用无参构造创建对象。

(5)一个类中可以定义多个构造,可以有参,也可以无参。

作用:

(1)使用类创建对象的时候要调用构造方法。

(2)通过构造可以为对象的属性设置初始值,避免漏掉某些属性不赋值。自定义的构造方法主要用于对象的初始化。

public class Student{ 
    String name; 
    int age; 
    String sex; 
    double height; 

    public Student() {} 
    public Student(String name,String sex,int age,double height) { 
      this.name=name; 10
      this.age=age; 11
      this.sex=sex; 12
      this.height=height; 13
    } 
    public Student(String name,String sex,int age) { 
      this.name=name; 
      this.age=age; 
      this.sex=sex;     
    } 
}
//通过构造方法创建类的对象
Student stu= new Student("孙悟空","男",19,1.7);

4.成员方法

成员方法是为了实现某个具体的功能,例如:打游戏,学习,看电视等。

[访问修饰符] 返回值类型 方法名([参数列表]){
   方法体
   return 返回值;
}

 访问修饰符:表示下定义的方法能够被访问的一个范围,此部分可以省略。属性/方法的访问修饰符一共有四个级别:public,protected,默认,private

返回值类型:必须有,取值:

void(表示这个方法不需要返回结果)

其它任何类型(基本类型/引用类型):表示方法必须要有返回值,而且返回值的类型要和定义的类型一致。

方法名:自己定义,根据标识符的规则(字母,数字,下划线),要按照小驼峰命名。。

参数列表:可以省略,省略的时候表示这个方法不需要参数。如果有参数,在调用方法时必须要按照参数列表的定义传递参数。参数列表中可以定义各种类型的参数。

方法体:方法实现具体功能的代码。

返回值:要和方法的返回值类型结合使用。如果返回值类型时void,此方法不能有返回值(不写return或者return后没有数据)。如果返回值类型不是void,方法最后一定要有返回值,返回的数据要和返回值类型相对应。

依据参数和返回值,有四种成员方法的写法。

(1)无参无返回值

(2)无参有返回值

(3)有参无返回值

(4)有参有返回值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值