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 student(String name){
this.name = name;
}
这里this(”名字”);语句调用了下面的另一个构造方法。
二、值传递与引用传递
1.值传递:
1、适用于8个基本数据类型(byte、int、short、long、char、float、double、boole与 String
2、特点:单项传递,传递数值,传递后互不影响
2.引用传递(参数传递)
1、适用于对象、数组
2、由于对象名是储存的是对象的首地址,所以对象作为参数传递或整体赋值时,其地址被传递给形参或变量名,两变量名指向同一存储空间所以对新对象的操作直接作用于原对象。
3、java中,当对象名指向发生变化,使得没有任何变量名指向原对象时,系统的垃圾及回收机制(GC)会启动,释放掉该对象的内存空间。
例:public class Student(){
private String name;
public void playWith(Student 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不能省略;定义时必须先继承类再继承接口。
相关推荐
- **方法参数**:对于基本类型的变量,使用`final`参数的意义不大,因为在方法调用时这些变量是通过值传递的,即方法内部对参数的任何修改都不会影响原始变量。但对于对象类型的参数来说,使用`final`则很有意义,...
Java中的继承、抽象类和接口是面向对象编程的重要概念,它们允许我们构建可复用、灵活和可扩展的代码结构。 1. **继承**: - 继承是类之间的一种关系,其中一个类(子类)从另一个类(父类)获取属性和行为。这种...
18. `this`:`this`关键字引用当前对象的引用,通常用于区分实例变量和局部变量,或者在构造函数中调用其他构造函数。 19. `throw`:`throw`关键字用于抛出一个异常,中断当前程序流程,将控制权交给异常处理程序。...
接口是一种特殊的抽象类,其中的所有方法都是抽象的,并且默认是`public`和`abstract`的。接口提供了多态性的基础,允许多个类实现相同的接口,从而具有相同的行为。 ### 控制流关键字 #### break `break`关键字...
Java编程涉及的概念广泛,包括但不限于类、对象、封装、继承、多态、构造函数、对象内存分析、引用传递、this关键字、static关键字、单例模式、类的继承、方法的覆盖、super关键字、final关键字、抽象类、接口、多态...
5. **值传递与引用传递**: - **值传递**:当函数参数是基本类型(如int、char、boolean等)时,实际传递的是变量的值,而不是变量的引用。这意味着函数内部对参数的修改不会影响到原始变量。 - **引用传递**:...
在郝斌的Java视频笔记中,涵盖了多个重要的Java概念,包括访问控制符、构造函数、函数重载、this关键字、static修饰符、继承、函数重写、多态、抽象类和接口。 1. **访问控制符**:Java提供了四个访问控制符:...
- **总结**:接口更多地用于定义标准或契约,而抽象类则提供了部分实现的基础,便于子类继承并扩展功能。 #### 值传递与引用传递 - **值传递**: - 在Java中,对于基本数据类型(如`int`、`char`等),传递的是其...
在这篇文章中,我们将对清华大学计算机系 C++期末考试题进行总结和分析,涵盖了面向对象程序设计、函数参数传递、拷贝构造函数、静态数据成员、继承、多态、_OVERRIDE_、抽象类、const关键字、用户自定义数据类型、...
#### 八、抽象类与接口 抽象类和接口都是为了实现多态而设计的。抽象类可以包含抽象方法(没有实现体的方法)和具体方法,而接口只能包含抽象方法。Java中允许一个类实现多个接口,但一个类只能继承一个抽象类。...
本文将深入讲解面向对象的主要概念,包括类和对象、封装、继承、多态、抽象类以及接口。 1. **类和对象** - **面向过程**:在面向过程编程中,我们关注的是步骤和过程,比如C语言,开发者需要亲自处理所有细节。 ...
### 抽象类与抽象方法 **题目7**: 下列关于抽象类和抽象方法的说法,哪项是正确的? - A. 抽象类中的方法都必须是抽象的 - B. 抽象方法必须有方法体 - C. 抽象方法不能有方法体 - D. 抽象方法可以有方法体 **正确...
12. **this关键字**:this关键字用于引用当前对象,不能在静态方法中使用,因为静态方法不属于任何特定对象。 13. **抽象类与对象**:抽象类不能被实例化,只能作为其他类的基类。 14. **多接口实现**:一个类可以...
接口是抽象方法和常量的集合,可以看作是特殊的抽象类,其中的方法默认为`public abstract`,变量默认为`public static final`。接口可以被继承(`extends`)和实现(`implements`)。一个类可以同时继承一个父类并...
13. **如何理解Java中的this关键字?** `this`关键字代表当前对象的引用,可以在构造器中使用它来初始化实例变量,或者在方法中区分实例变量和局部变量。 14. **异常处理的机制?** Java通过`try-catch-finally`...
18. 抽象类与接口的区别 抽象类可以包含实现,可以有字段和构造函数,而接口仅包含方法签名。一个类只能继承一个抽象类,但可以实现多个接口。 19. 别名指示符(using alias directive) using alias directive ...
17. **抽象类与抽象方法的规则**:包含抽象方法的类必须是抽象类,但抽象类可以包含非抽象方法。如果子类继承了抽象类,且没有实现所有抽象方法,子类也必须声明为抽象类。 以上是Java基础学习笔记中涵盖的一些关键...