`
louis1987
  • 浏览: 10055 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Java的对象、this、参数、static、super、方法重写、抽象类

阅读更多
1.对象
User user1 = new User();
User user2 = user1;
user1和user2引用同一对象,user2对象改变则影响user1.

2.this关键字
在方法内使用this来引用当前的对象。

3.参数传递两种方式
(1)简单类型传递是按值传递,在调用方法时,其参数值的改变不会影响到传递的参数。
(2)对象的传递是按引用传递,在调用方法时,其参数对象的改变会影响到传递的参数对象。对象传递是指向同一个对象。不必指定返回类型
4.static
方法和变量声明为static.
变量为static则为全局变量。所有该类的对象共享同一个static变量。
static方法:仅限调用其它static方法;只能访问static数据;不能引用this,super.
public static void main(String[] args) {
   one(32);
   TestMain.one(12);
}
static int a = 5;
static int b;
static { //static 代码块,在该类第一次加载时执行且执行一次
   b = a * 3;
}
static void one (int x){
  
   System.out.print("x = "+x);
   System.out.print(" a = "+a);
   System.out.print(" b = "+b);
   b = x;
   System.out.println(" b = "+b);
}
结果:
x = 32 a = 5 b = 15 b = 32
x = 12 a = 5 b = 32 b = 12

5.super关键字
(1)调用父类的构造函数
(2)super.方法/变量 -- 调用父类的成员(调用被子类隐藏的父类成员)。例如子类和父类的变量一样时,子类会隐藏父类的变量。

6.方法重写
(1)子类重写父类的方法,即有相同的方法名和类型声明。父类的方法被隐藏。用super.method()调用。
(2)若与父类的方法名相同,参数类型或个数不同就是重载,而非重写。
(3)父类变量引用子类对象,变量引用被重写的方法(子类方法)

7.抽象类

(1)声明抽象方法,但不提供方法的实现。而子类必须重写父类的抽象方法。
(2)如果要求子类必须重写父类的方法,则父类应定义为抽象类(abstract)。
看一个实例:

abstract class Figure {

  double width;
  double length;
  double depth;

  Figure(double width, double length) {
    this.width = width;
    this.length = length;
  }

 
  abstract double area();// abstract method

}
--------------------------------------------------------------------------------

class Rectangle extends Figure {

  Rectangle(double width, double length) {
    super(width, length);
  }

  @Override
  double area() {
    return width * length;
  }

}
--------------------------------------------------------------------------------

class Triangle extends Figure {

  Triangle(double width, double length) {
    super(width, length);
  }

  @Override
  double area() {
    return width * length / 2;
  }

}
--------------------------------------------------------------------------------


分享到:
评论

相关推荐

    Java 继承和方法重写

    - **抽象类**:包含抽象方法(没有方法体的方法)的类,不能实例化,只能被继承。 - **接口**:完全抽象,只包含常量和抽象方法,可以多继承。Java 8 开始支持默认方法和静态方法。 **二、方法重写(Override)**...

    java利用接口和抽象类改写求圆的面积和梯形的面积.docx

    ### Java利用接口和抽象类改写求圆的面积和梯形的面积 #### 深入理解Java的接口和抽象类 在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性和代码复用的重要概念。它们都无法被...

    JAVA进阶-Java继承,多态,重写,修饰符以及super与this使用,Oject对象

    在Java编程语言中,继承、多态、重写、修饰符以及`super`和`this`的使用是面向对象编程的核心概念。这些知识点对于理解和编写高效、可维护的代码至关重要。 1. **Java继承**: Java继承允许一个类(子类)继承另一...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    在Java编程语言中,`final`关键字、抽象类和接口是面向对象编程的重要概念。它们各自扮演着不同的角色,帮助我们构建更健壮、可维护的代码结构。 首先,`final`关键字在Java中具有多种用途。它可以用来修饰类、方法...

    Java面向对象总结

    5. **如果要在子类的构造方法中显式调用父类的构造方法**:使用`super(参数列表)`,且该语句必须位于子类构造方法的第一行。这样可以确保父类构造方法被正确调用,初始化父类的数据成员。 #### 二、多态 多态是...

    方法重写.zip

    3. `Animal.java`:这应该是定义了动物基本行为的抽象类或者接口,包含了一些通用的方法,如吃、跑等。 4. `Fish.java`:这可能是鱼类的文件,同样作为动物的一种,它也可能需要重写`Animal`类中的某些方法来体现...

    JAVA类与对象及数组习题及答案.pdf

    - 在Java中,Number是一个抽象类,它的子类如Integer、Double等用来封装基本类型的数值。 - Java中的方法可以被覆盖,即子类可以有与父类同名的方法,而Java也支持方法重载,即在同一个类中可以有多个同名方法,只要...

    抽象类和接口

    - 子类必须重写抽象类中的所有抽象方法,除非子类也是抽象类。 **特点**: - 抽象类用于提供一个基类模板,供子类继承并实现具体逻辑。 - 可以定义构造函数、成员变量和成员方法。 - 支持单继承特性,即一个类只能...

    抽象类和接口1

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计工具,它们允许我们定义规范,供其他类去实现或扩展。本篇文章将详细讲解抽象类、抽象方法、final关键字以及接口。 首先,抽象类是一种不能被实例化的类,...

    java面向对象代码

    在Java中,抽象类使用abstract关键字定义,它可能包含抽象方法,这些方法没有具体的实现。抽象类不能被实例化,通常作为其他类的父类。 6. 接口:接口是Java中另一种形式的抽象,它定义了一组抽象方法。类可以实现...

    JAVA中的继承与抽象

    抽象类是面向对象编程的另一个基本特征,它允许在已有的类基础上创建新的抽象类,并继承已有类的成员变量和成员方法。抽象类的定义格式为:public abstract class 类{},抽象方法的格式为:public abstract 返回值...

    面向对象抽象思维与java继承机制

    ### 面向对象抽象思维与Java继承机制 #### 一、抽象的含义 在面向对象编程中,**抽象**是一种关键概念,它涉及到从具体的实体中提取共同特征和行为的过程。通过抽象,程序员能够专注于对象的核心特征和功能,而...

    java关键字总结

    本总结旨在梳理Java中的关键字,包括this和super的使用、final修饰符的含义、static关键字的作用、以及abstract的使用规则。 首先,关键字this用于区分成员变量和局部变量。在Java中,如果方法中的参数名称和成员...

    Java面向对象编程PPT

    - 子类必须实现抽象类中的所有抽象方法,除非子类也是抽象类。 7. 构造器链 - 在子类构造器中,可以通过`super()`调用父类的构造器,确保父类的状态正确初始化。 8. 内部类(Inner Classes) - 包含在其他类...

    JAVA继承_接口_抽象类等练习.doc

    **概念:** 方法重载是指在一个类中定义多个同名的方法,但这些方法具有不同的参数列表(参数数量不同、参数类型不同或者参数顺序不同)。方法重载允许程序员在同一个类中使用相同的名字来定义多个功能相似但又有所...

    java面向对象的实例

    - `abstract`用于声明抽象类和抽象方法。 - `final`用于声明不可变的变量,不能被继承的类或不能被重写的方法。 - `static`用于声明静态成员,它们属于类而不是类的实例。 - `this`关键字引用当前对象的实例。 - `...

    java面向对象基础

    静态关键字(`static`)用于定义静态成员变量、静态方法和静态代码块等,这些静态成员由类而不是对象拥有,可以通过类名直接访问。 - **静态变量**: 被所有对象共享的变量。 - **静态方法**: 可以通过类名直接调用...

    JAVA理论知识基础复习

    JAVA理论知识基础复习涵盖了JAVA语言的基础知识,包括构造方法、new关键字、方法的重载、特殊变量this、static定义常量、继承、方法的重写、特殊变量super、多态性、接口和抽象类的区别、内部类和异常处理等相关知识...

Global site tag (gtag.js) - Google Analytics