Java 2 类与对象

0.类与修饰词:(类的前,中都有)

private > 不写 > protected > public

类的声明:

【修饰符】class 类名 【extends 父类】【implements 接口】
单父类,多接口。

**Java定义完类后不用写;,C++需要写;

Java与C++类的区别

对象的比较:
  1. == 和 !=:
    比较2个***引用实例***是否相等。

  2. equals():
    比较2个***类内的值***是否相等。

特殊:
  1. Javac 文件.java时会生成所有类的 .class文件。
  2. 每个类都可以有1个自己的main函数,但仅又一个main函数会执行,其他的可以作为类单元的测试。

1·this:

  1. 用于指代当前对象自身(谁调用的,当前就是谁)。

Person a1 = this;

  1. 访问当前对象的变量和方法。

this.变量/方法(参数)

  1. 调用本类重载的构造方法。
    只可以在构造函数中用,并且写在第一句。

2·构造方法:

无返回类型,方法名与class名相同。

拷贝构造方法:

Person(Person a)

Java中没有默认的拷贝构造方法。类采用“引用”,形参实参为1个空间。
当对象作为函数参数或者返回值,传对象引用。

C++中执行的时候传形式参数

3·import:

不同包的文件可以使用 import 包路径 类名 来使用其他包文件。
如果有包的话,package语句必须放到d1行。
如果不同包有同名的类,引用类时必须写出 ”包路径.class名“ 。

4·继承(extends):

不支持多继承
可详见接口

classextends{
	...
}
  1. 父子同一个包:可以继承除private之外的所有。
  2. 父子不在同一包:只可以继承父的protected、public成员变量和方法。什么都不写的(默认的)不会继承。
ex:instanceof 运算符:

双目运算符,左面操作对象,右面操作类。
左是右的类或者子类创建的对象时,返回true。

5·方法重写与super:

子类进行与父类完全一致的成员变量或方法会覆盖父类,称之为重写。
如果想使用被隐藏的变量或者方法,使用super.x / super.f()

6·对象的上转型对象与多态:

假设A父B子:
A a;
B b = new B();
a = b;
或者
A a = new B();

此时 a 无法新增变量或方法。
利用 a 可以使用不同子类的不同方法。----》多态

7·抽象类与多态(abstract):

abstract class A{
	...
}
  1. 抽象类中可以有 普通或 abstract 方法。
  2. 只可以声明,不能使用 new 运算符创建该类对象。
  3. 如果一个非抽象类是某个抽象类的子类,那么必须重写父类的抽象方法。
  4. 如果一个抽象类是某个抽象类的子类,那怎样都行。
  5. 抽象类中抽象方法只能声明,不可实现。

eg:
父(abstract): Car
子:PoliceCar、FireCar、etc…
功能类:SoundMaker(内含发声功能)

public class SoundMaker{
	void sound(Car car){
		car.makesound();
	}
}

创建功能性对象: SoundMaker sm = new SoundMaker();
使用对象的上转型对象:父类 car = new 子类();
sm.sound(car);

8·接口:

  1. 引入原因:Java只允许单继承,但是允许多继承的接口。继承—“是不是”;接口—“能不能”。

  2. 接口创建:

public interface 接口名{

	常量(访问权限一定是public,允许忽略publicfinalpublic static final int MAX = 100;
	int MAX = 100;//同上
	
	
	方法(访问权限一定是public,允许忽略publicabstractpublic abstract void add(int a,int b);
	void add(int a,int b);//同上
}
  1. 接口使用:
    使用 implements 关键字声明自己实现一个个或者多个接口,用“,”隔开。
    如果一个类实现了某个接口,就必须重写该接口的方法。
class A implements 接口1,接口2
class Dog extends Animal implements 接口1,接口2
  1. 接口特点:

    没有构造器。
    采用多继承机制。
    主要用途就是被实现类实现。
    和类是并列关系,一种特殊的抽象类,只包含常量和方法的定义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值