Java面向对象的一些注意事项

本文深入浅出地介绍了Java中的核心概念,包括对象的创建与引用、构造器、方法的重载与重写、this与static关键字的使用、包与导入、访问控制权限、继承中的构造方法、动态绑定、抽象类、final限定符以及接口的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 对象的创建和引用

同一个类的每一个对象有不同的成员变量的存储空间,同一个类的对象共享该类的方法

2 构造器

构造器与类名相同并且没有返回值,当没有为类设计构造器时,编译器将制动添加无参构造器。

public class Test {
    public void test() {}
}

//没有设定构造器时,编译器为您添加默认构造器
//等价于

public class Test {
    Test() {}//默认构造器
    public void test() {}
}

如果你显式设定了有参的构造器,编译器并不会为您再添加默认构造器,如需默认构造器需要自己显式设定

3 方法重载和方法重写

  • 方法重载:在类中定义一个具有相同名字,但是有不同参数(不同参数,可以类型不同、参数个数不同等)的方法。
  • 方法重写:派生类(子类)把和基类具有一样的名字、相同参数、相同返回值的方法重新实现,访问权限不能比基类严格。

class FatherClass {
	FatherClass() {}
	FatherClass(int i) {}//方法重载
	public void test(int i) {
		System.out.println("FatherClass: test(int i)");
	}
}

public class ChildrenClass extends FatherClass {
	ChildrenClass(int i) {
		super(i);
	}
	//方法重写
	@Override
	public void test(int i) {
		System.out.println("ChildrenClass: test(int i)");
	}
}


4 this关键字

this相当于一个变量,值为传进当前方法的对象的引用。this一般用于处理方法中成员变量和参数重名的情况。

class Person {
	private String name;
	private int age;

	Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
}

4 static关键字

  • static声明的成员变量为类的公共变量,但是只有一份,即所有对象公用这样一份,可以通过类名引用,也可以通过创建类的对象引用。
  • static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给静态方法,所以不能访问非static成员。

5 package和import

  • package语句必须放在代码中的第一句
  • 其他类想引用package里的类,一种方法时写全名,另一种方法是通过import引用该类。前提是class文件的最上层包的父目录位于classpath。
  • 执行一个声明了package的类时要写全名。

6 访问控制权限修饰符

    • private: 仅供类内部使用
    • 无修饰符: 类内部或者同一个包内可以使用
    • protected: 类内部、同一个包或者是子类可以使用
    • public: 任何地方均可使用

注意:class的修饰符只能是public或者是无修饰符

7 继承中的构造方法

子类的构造必须调用基类的构造器,如果子类没有显式调用基类的构造器,系统默认调用基类的无参构造器,如果子类没有显示调用基类无参构造器,而且基类也没有无参构造器,便宜会报错。

8 动态绑定、迟绑定或多态的条件

(1)要有继承或者实现接口

(2)要重写了基类的方法或者实现了接口方法

(3)基类指向子类对象或者接口指向具体实现

9 抽象类

含有抽象方法(抽象方法只需声明不需实现)的类必须声明为抽象类,抽象类必须被继承,抽象的方法必须被重写。

抽象类不能被创建对象。

10 fianl

final变量的值不能被改变,final方法不能被重写,final类不能被继承

11 interface

  • interface的属性为public static final,方法为public。都只是定义没有具体实现。
  • 一个接口可以有多个类实现,一个类可以实现多个接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值