java基础(类,对象,引用,内存,方法,参数传递,this关键字)

本文介绍了面向对象编程(OOP)的概念,包括面向过程编程和函数式编程的对比。重点讨论了Java中的类、对象和引用,阐述了它们之间的关系以及如何通过类创建对象。文章还提到了内存管理,方法的定义和参数传递,以及this关键字在非静态方法中的作用。通过对这些概念的深入理解,有助于掌握Java编程的基础。
摘要由CSDN通过智能技术生成

1 OOP

OOP,编写对象编程

OOP(object oriented programming),面向对象编程

  • 把构成问题的各种事物,抽象成各个对象,这些对象具有解决问题的行为(方法),同时对象还可以具有解决很多类似问题的行为(方法),而不只是能解决一个问题。

POP(procedure oriented Programming),面向过程编程

  • 分析出,解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,然后依次调用就可以了。

FP(functional programming),函数式编程

  • 类似于面向过程的程序设计方式,具有很高的抽象程度。JDK8中的一些特性,可以支持使用函数式编程。

例如,完成做饭功能

面向过程:起锅–>倒油–>放葱姜蒜–>放菜–>翻炒3分钟–>放生抽–>放盐–>翻炒1分钟–>尝尝味道–>出锅
起来
面向对象:打开全自动炒菜机–>放各种配料–>启动–>出锅

注意,关键是要把炒菜机这个类给定义好,然后创建这个类的对象,调用方法完成功能

面向对象思想,是一种程序设计思想,使用这种思想进行编程的语言,就是面向对象编程语言。

Java语言是众多面向对象编程语言中的其中一种,我们需要在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。

面向对象中的对象,泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,定义为程序中的一种数据类型。

面向对象的思想,主要强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。

思考,java中的类是怎么来的?对象又是怎么获得的?

封装(Encapsulation)、继承(inheritance)、多态(polymorphism),是面向对象编程中的基本特征,java语言也同样具有这三种特征。后面会对这些特征进行详细的了解和学习。

2 类

java中对数据类型的描述和定义,都是抽象的,每一种数据类型,都是对同一类数据的抽象描述,描述了这种数据的基本特点。

例如,基本数据类型中的int,就是对计算机中一个简单的32位数据的定义,描述了这种数据的基本特点和表达的含义。

例如,引用数据类型中的String,就是对程序中的字符串这种数据的定义,描述了作为一个字符串数据,应该具有哪些属性、行为和特点。

intString都不能直接当做具体的数据来使用或者参与运算,因为它们俩个都是对数据的抽象描述,并不能当做具体的数据使用,如果想使用的这些数据的话,可以使用int或者String类型进行变量的声明,再用变量接收数据,然后就可以使用这个变量来进行操作。

例如,

public class Student{
   
    public String name;
    
    public void sayHello(){
   
        
    }
}

这里我们先定了一个Student类,这个Student类就是一个自定义的数据类型,它本身是对学生的抽象描述,规定了一个学生数据,应该具有一个String类型的name属性,以及有一个sayHello方法。

我们并不能直接使用Student类进行操作,因为Student类是对学生这种数据的抽象描述,但是我们可以使用Student类声明变量,并且使用这个变量接收一个学生数据(对象),然后再使用这个变量对具体的学生数据进行操作(访问属性、调用方法)。

例如,

public static void main(String[] args){
   
    //使用Student类,声明变量
    Student stu;
    //使用这个变量,接收一个具体的学生数据(也就是对象)
    stu = new Student();
    
    //使用对象访问它的的属性和调用它的方法
    stu.name = "tom";
    stu.sayHello();
    
}

3 对象

放眼望去,我们身边的能看到的东西,都是对象,例如桌子,椅子,话筒,电脑,鼠标,水杯等等,面向对象的思想中,一切皆为对象。

思考,类和对象的关系是什么?

通过前面的学习可知,类是一组相关属性和行为的集合,它是对某一种具体事物的抽象描述。

也可以把类看作一个模板,我们使用的对象,就是按照这个模板中的定义,来进行创建的。

  • 类是对一类事物的描述,是抽象的
  • 对象是一类事物的实例,是具体的
  • 类是对象的模板,对象是类的实体

例如,

对猫的定义:(这就相等于定义了一个类)

  • 属性:名字、体重、年龄、颜色
  • 行为:走、跑、叫

我家里的小猫皮皮:(这就是一个具体的对象)

  • 名字:皮皮,体重:3KG,年龄:3岁,颜色:白色
  • 皮皮可以走,也可以跑,也可以喵喵的叫

可以看出,皮皮这个小猫(对象),完全符合上面对猫的定义的一切属性和行为。

一个类的对象,也就是这个类的具体实例。

所以说,类是一种抽象的数据描述,对象是类的一个具体的实例。

思考,有对象之后,可以使用对象做什么?

4 引用

引用类型的变量,简称引用。

引用是可以指向对象的,简称引用指向对象。

使用类创建对象之后,怎么给对象起一个名字,以便后面对这个对象进行操作

例如,

//使用new 加上 Student类中构造器,来创建Student类的对象
new Student();

//为了能方便的使用这个对象,就可以给这个对象起一个名字
//这个过程,其实就是之前学习过的 =号赋值操作
//把新创建的学生对象,赋值给了引用stu
Student stu = new Student();

//后面就可以使用引用stu来操作对象了,也就是访问对象中的属性和调用对象中的方法
stu.name = "tom";
stu.sayHello();

思考,如果没给对象起名字,这个对象能使用么?

能使用,但是只能在创建这个对象的同时就使用,并且只能使用一次,后面就不能使用了,因为它没有名字,无法在语法上面标示对这个对象进行使用

例如,

(new Student()).sayHello()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值