文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java 中的类和对象详情

2024-04-02 19:55

关注

类可以看成是创建Java对象的模板

1、类的定义


public class Dog {
    String name;
    int age;

    void eat() {
    }
    void sleep() {
    }
}

2、类中变量的类型

局部变量:在方法或语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

成员变量(实例变量):成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。

3、构造方法

构造方法的名称必须与类同名,一个类可以有多个构造方法。

在创建一个对象的时候,至少要调用一个构造方法。 如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。


public class Dog {
 public Dog() {
  System.out.println("构造Dog");
 }
}

4、重载方法

创建两个具有相同名称和不同参数列表(即不同的参数数量或类型)的方法时,就拥有了一个重载 方法。

在运行时,JRE 基于传递给它的参数来决定调用您的重载方法的哪个变体。

我们甚至可以在一个方法中调用另一个同名的重载方法。

但要注意:在使用重载方法时,

5、继承

要表示一个类继承自某一个超类,我们可以在声明类时,在 className 后加上 extends

例如:


public class Employee extends Person {
  // Employee 继承自 Person
  public Employee() {
    super();
    }
  
    public Employee(String name, int age, int height, int weight,
  String eyeColor, String gender) {
        super(name, age, height, weight, eyeColor, gender);
  }
}

在构造函数中,调用 super([args]) 来初始化父类。

5.1 重写方法

如果一个子类提供其父类中定义的方法的自有实现,这被称为方法重写。

重写的形式类似于重载,但需要加上一个 @Override。例如,当父类中有一个 foo() 方法时,我们可以在子类中这样重写它:


@Override
public int foo() {
 // TODO Auto-generated method stub
 return super.foo();
}

【注】这段代码是使用 Eclipse 自动生成的,它只是调用了父类中的方法(super.foo()),没有任何改变,但实际中我们不会这么使用。

重写后,在类中直接使用 method()调用重写后的函数,但我们任然可以通过 super.method() 调用父类中的(重写前的)方法。

6、创建对象

对象是根据类创建的。 创建对象需要以下三步:


public class Dog {
 public static void main(String[] args) {
  Dog Dog0 = new Dog();
 }
}

7、访问实例变量和方法


public class Dog {
 String name;
 int age;

 void eat(String food) {
  System.out.println(name + " is eating " + food + ".");
 }

 public Dog() {
  name = "Dog";
  age = 0;

  System.out.println("构造():");
  System.out.println(name + "\t" + age);
 }
 public Dog(String dogName, int dogAge) {
  name = dogName;
  age = dogAge;
  System.out.println("构造(name, age):");
  System.out.println(name + "\t" + age);
 }

 public static void main(String[] args) {
  Dog Dog0 = new Dog();
  Dog Dog1 = new Dog("FooBar", 3);

  // 访问变量 
  Dog0.name = "Ana";
  System.out.println(Dog0.name);

  // 访问方法
  Dog1.eat("cat");

 }
}

运行👆上面代码将输出:


构造():
Dog 0
构造(name, age):
FooBar 3
Ana
FooBar is eating cat.

8、比较对象

Java 语言提供了两种比较对象的方法:

8.1 使用 == 比较对象

== 语法比较对象是否相等,只有在 ab 相等时,a == b 才返回 true

对于内置基本类型,需要它们的值相等。

对于对象,需要两个对象引用同一个对象实例。

例如:


import java.util.logging.Logger;

public class Equals {
 public static void main(String[] args) {
  Logger l = Logger.getLogger("Test");

  int i = 12,
   j = 12,
   k = 99;
        
  Integer a = new Integer(12);
  Integer b = a;
  Integer c = new Integer(12);

  l.info("i == j: " + (i == j));
  l.info("i == k: " + (i == k));

  l.info("a == b: " + (a == b));
  l.info("a == c: " + (a == c));
 }
}

运行这段代码将得到如下结果:


i == j: true
i == k: false
a == b: true
a == c: false

【注】若使用 a = Integer.valueOf(12); 与 c = Integer.valueOf(12); 分别得到 a 和 c,则 a == c 将是 true !

8.2 使用 equals() 比较对象

equals() 是每种 Java 语言对象都可以自由使用的方法,因为它被定义为 java.lang.Object 的一个实例方法(每个 Java 对象都继承该对象)。

调用 equals() 的方法如下:

a.equals(b);

此语句调用对象 aequals() 方法,向它传递对象 b 的引用。

默认情况下,Java 程序使用 == 语法检查两个对象是否相同。但是因为 equals() 是一种方法,所以它可以被重写。这样,对于任何对象,我们都可定义适合的 equals() 的含义。

【注】在重写 equals() 时,我们可以利用 object.hashCode()( to return a hash code value for the object.)

到此这篇关于Java 中的类和对象详情的文章就介绍到这了,更多相关Java 中的类和对象内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯