`

this关键字、引用传递与值传递、接口与抽象类总结

 
阅读更多

this关键字、引用传递与值传递、接口与抽象类总结

一、this关键字

1.含义:指的是当前方法对应的对象。

例:

         public class Student{

                  private String name;

                  public void setName(String n){

                          this.name = n;

}

}

这里this即指调用setName()方法是的对象。

2.作用:

1、区分方法中同名的参数与属性

例:public Student(String name){

           this.name = name

           }

这里的this把参数与属性加以区分,否则根据就近原则,等号两边的name都会被当做参数name处理。

2、调用本类中重载的构造方法

例:public student(){

           this名字);

}

public studentString name{

           this.name = name;

}

这里this名字);语句调用了下面的另一个构造方法。

二、值传递与引用传递

1.值传递:

1、适用于8个基本数据类型(byteintshortlongcharfloatdoubleboole String

2、特点:单项传递,传递数值,传递后互不影响

2.引用传递(参数传递)

         1、适用于对象、数组

         2、由于对象名是储存的是对象的首地址,所以对象作为参数传递或整体赋值时,其地址被传递给形参或变量名,两变量名指向同一存储空间所以对新对象的操作直接作用于原对象。

         3java中,当对象名指向发生变化,使得没有任何变量名指向原对象时,系统的垃圾及回收机制(GC)会启动,释放掉该对象的内存空间。

例:public class Student(){

                 private String name;

                 public void playWithStudent s{}

}

Student stu1 = new Student();

         Student stu2 = new Student();

         stu1.playWith(stu2)

         stu2 = stu1;

执行stu1.playWith(stu2);时,stu2存储的地址被赋给形参s,两者共用一片存储空间;

执行stu2 = stu1;时,stu1存储的地址被赋给形参stu2,同时stu2所指的对象空间被释放。

二、接口与抽象类

1.      接口:

1、定义格式:

public interface 接口名 extends 接口名,... {

                    //常量

                    public static final 数据类型  常量名 = ;

                    //抽象方法

                    public 返回值数据类型方法名(数据类型参数名,...);

           }

2、实现格式

public class 类名   extends 类名   implements 接口名,... {

        

     }

同时,必须实现接口中所有的抽象方法,否则仍有抽象方法,无法作为类。

                  2、注意:

1.只能定义常量和抽象方法。

                  2.接口中默认的访问修饰符是public

                  3.常量名的每一个字母要全部大写。

                  4.接口可以继承接口,而且可以同时继承多个接口。

                  5.接口不能用来实例化对象。(因为有抽象方法)

         例:public interface ButtonListener extends ActionListener{

}

public class MyListener implements ButtonListener{

                  publicvoid actionPerformed(ActionEvent e) {

    }

}

2.      抽象类

1、定义格式:

public abstract class 类名extends 类名implements 接口名{

  public abstract 方法名();

}

2、注意:抽象类是介于接口与类之间的类型,含有抽象方法,也不能实例化对象。

定义抽象方法时abstract不能省略;定义时必须先继承类再继承接口。

分享到:
评论

相关推荐

    Java关键字总结

    - **方法参数**:对于基本类型的变量,使用`final`参数的意义不大,因为在方法调用时这些变量是通过值传递的,即方法内部对参数的任何修改都不会影响原始变量。但对于对象类型的参数来说,使用`final`则很有意义,...

    JAVA继承、抽象类、接口[定义].pdf

    Java中的继承、抽象类和接口是面向对象编程的重要概念,它们允许我们构建可复用、灵活和可扩展的代码结构。 1. **继承**: - 继承是类之间的一种关系,其中一个类(子类)从另一个类(父类)获取属性和行为。这种...

    Java关键字大全 Java关键字大全

    18. `this`:`this`关键字引用当前对象的引用,通常用于区分实例变量和局部变量,或者在构造函数中调用其他构造函数。 19. `throw`:`throw`关键字用于抛出一个异常,中断当前程序流程,将控制权交给异常处理程序。...

    java关键字

    接口是一种特殊的抽象类,其中的所有方法都是抽象的,并且默认是`public`和`abstract`的。接口提供了多态性的基础,允许多个类实现相同的接口,从而具有相同的行为。 ### 控制流关键字 #### break `break`关键字...

    Java编程详解大全.pdf

    Java编程涉及的概念广泛,包括但不限于类、对象、封装、继承、多态、构造函数、对象内存分析、引用传递、this关键字、static关键字、单例模式、类的继承、方法的覆盖、super关键字、final关键字、抽象类、接口、多态...

    Java面试宝典(基础版)

    5. **值传递与引用传递**: - **值传递**:当函数参数是基本类型(如int、char、boolean等)时,实际传递的是变量的值,而不是变量的引用。这意味着函数内部对参数的修改不会影响到原始变量。 - **引用传递**:...

    郝斌java视频笔记.doc

    在郝斌的Java视频笔记中,涵盖了多个重要的Java概念,包括访问控制符、构造函数、函数重载、this关键字、static修饰符、继承、函数重写、多态、抽象类和接口。 1. **访问控制符**:Java提供了四个访问控制符:...

    2017Java常考面试题 下载

    - **总结**:接口更多地用于定义标准或契约,而抽象类则提供了部分实现的基础,便于子类继承并扩展功能。 #### 值传递与引用传递 - **值传递**: - 在Java中,对于基本数据类型(如`int`、`char`等),传递的是其...

    c++期末复习清华大学华中科技大学

    在这篇文章中,我们将对清华大学计算机系 C++期末考试题进行总结和分析,涵盖了面向对象程序设计、函数参数传递、拷贝构造函数、静态数据成员、继承、多态、_OVERRIDE_、抽象类、const关键字、用户自定义数据类型、...

    java面向对象

    #### 八、抽象类与接口 抽象类和接口都是为了实现多态而设计的。抽象类可以包含抽象方法(没有实现体的方法)和具体方法,而接口只能包含抽象方法。Java中允许一个类实现多个接口,但一个类只能继承一个抽象类。...

    面向对象大纲总结.pdf

    本文将深入讲解面向对象的主要概念,包括类和对象、封装、继承、多态、抽象类以及接口。 1. **类和对象** - **面向过程**:在面向过程编程中,我们关注的是步骤和过程,比如C语言,开发者需要亲自处理所有细节。 ...

    华为Java笔试题华为Java笔试题

    ### 抽象类与抽象方法 **题目7**: 下列关于抽象类和抽象方法的说法,哪项是正确的? - A. 抽象类中的方法都必须是抽象的 - B. 抽象方法必须有方法体 - C. 抽象方法不能有方法体 - D. 抽象方法可以有方法体 **正确...

    Java期末考试题.pdf

    12. **this关键字**:this关键字用于引用当前对象,不能在静态方法中使用,因为静态方法不属于任何特定对象。 13. **抽象类与对象**:抽象类不能被实例化,只能作为其他类的基类。 14. **多接口实现**:一个类可以...

    java 基础知识总结与摘要

    接口是抽象方法和常量的集合,可以看作是特殊的抽象类,其中的方法默认为`public abstract`,变量默认为`public static final`。接口可以被继承(`extends`)和实现(`implements`)。一个类可以同时继承一个父类并...

    java 面向对象面试题

    13. **如何理解Java中的this关键字?** `this`关键字代表当前对象的引用,可以在构造器中使用它来初始化实例变量,或者在方法中区分实例变量和局部变量。 14. **异常处理的机制?** Java通过`try-catch-finally`...

    C#学习笔记-25个经典问题.pdf

    18. 抽象类与接口的区别 抽象类可以包含实现,可以有字段和构造函数,而接口仅包含方法签名。一个类只能继承一个抽象类,但可以实现多个接口。 19. 别名指示符(using alias directive) using alias directive ...

    Java基础学习笔记

    17. **抽象类与抽象方法的规则**:包含抽象方法的类必须是抽象类,但抽象类可以包含非抽象方法。如果子类继承了抽象类,且没有实现所有抽象方法,子类也必须声明为抽象类。 以上是Java基础学习笔记中涵盖的一些关键...

Global site tag (gtag.js) - Google Analytics