———Java的面向对象,实例化对象以及方法———

关于面向对象和面向过程:

        我们或多或少都听过编程语言的面向对象和面向过程,例如面向对象的Java,C#,PHP,面向过程的C语言。

面向过程:指的是完成一项工作,是通过分析完成所需要的步骤,然后构思思路之后再将思路代码化进行实现的过程,容易理解为完成工作注重的是实现的方法。

举个栗子:雕版印刷,我需要印刷《三字经》时,我只需要将《三字经》,做一份雕版,就可以无限印刷,但是我只能印刷这一本书籍。

面向对象:指的是通过将工作拆分成不同的类别,分别完成所需要的对应功能,最后再根据思路和步骤进行组装从而完成工作。

举个栗子:活字印刷,我需要印刷《三字经》时,我将其分为不同的字,再根据需要拼接起来,就可以印刷,和雕版印刷相比,当我需要印刷别的书籍时,我只需要根据文本组装,就可以印刷不同的书籍。

       映射到面向对象和面向过程,可以很容易理解,面向过程的语言适合简单,不需要协作的任务,重点关注如何执行。面向对象的过程由于其协作性和模块化,适合复杂的任务,但是具体到每一个模块的功能,依然还是面向过程的思想。(毕竟模块就是要完成简单的独立的任务)所以两种思想是相辅相成的。

 Java类,和实例化对象:

    通过对面向对象的了解,接下来就可以了解有关类,对象,方法的内容:

我们可以将类理解为蓝图,创建对象则是根据类(蓝图)创建我们所需要的相同或不同的拥有类(蓝图)所定义出的属性(类成员变量)的对象,所以它们是类似的但是对象之间不相同,所以同一类对象拥有不同的存储空间。

 

 Java类中的构造方法

public class Money {
    int income,outcome,all;
    String str;
       //该方法名必须与类名相同,没有返回值,且不需要使用void修饰
       //可以不写出
    public Money(){
}

        特点:Java会为每一个类提供一个默认的方法叫“构造方法”,该方法的作用是将类成员初始化。但是如果重新定义一个构造方法的话,默认的无参构造方法会失效,且一个类可以有多个构造方法。

public class Money {
    int income,outcome,all;
    String str;
    public Money(){}
      //第二个自定义的携带参数的构造方法
    public Money(int a){
        all=a;
    }

        注意:当我们在主程序创建该类的对象并初始化时,可以通过向构造方法传递参数来实现自定义类成员的初始赋值,但是必须保留无参的构造方法,否则当我们想要默认初始化时就会报错。

public class Money {
    int income,outcome,all;
    String str;
      //如果删除该方法,会使下图代码报错
    public Money(){}
      //定义携带参数的构造方法后建议保留默认构造方法
    public Money(int a){
        all=a;
    }
public static void main(String[] args) {
       Money money =new Money(10000);
             //调用Money类中含参的构造方法
       Money money =new Money();
             //调用Money类中的默认构造方法

方法的重载

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

从Java中自带的类我们就可以很容易找到例子:

       Math类中的max方法的作用为传入两个数,返回其中较大的一个,由图中我们可以看出可以根据需要 传入不同数据类型的参数,但是都是同一个方法名——max。

 其参数可以有3个方面的不同:

        1.数量不同         2.类型不同        3.顺序不同

 对象与引用

  Java中除了基本数据类型外的变量类型称为引用数据类型。其中,对象是通过引用对其操作的。

    如上图,Java创建的名称为money的对象的语句中,赋值号右边的语句是以Money类为模板,在堆空间中创造了一个Money类的对象。该对象的类型为Money但是并没有名称,所以我们通过赋值号左边的语句,创建了一个Money类型的引用变量,将该对象的地址赋给该引用变量,也可以看作是money指向了刚创建的Money类对象。所以我们需要通过引用变量来访问对象,需要注意的是创建的实体对象只有一个,但是可以通过不同的引用变量指向它,

Money num1;

Money num2;

Money num1=new Money( );

num2 = num1;

此时,num2和num1都指向同一个对象。

关于Java方法调用中的值传递:

形参是基本数据类型:方法调用时,实参将它具体的数值赋值给对应的形参,两者是不同的存储单元,不管形参在方法中如何运算,都不会影响原实参的值。(传值调用

● 形参是引用数据类型:方法调用时,实参将所指向的地址传递给形参,方法执行时,由于形参访问的就是实参的地址,所以对形参的操作会改变原实参的值。(传址调用

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值