java编程自学记录(day06)


类、对象、引用的区别
(1) 对象:真实存在的一个东西
(2) 类:概念,是同类东西的概念。可以看成 名词
(3) 引用:代词,是对象的引用,就像拴着对象的绳子,引用的值是对象的地址值
 Point p1 = new Point();
 以上语句中,Point是类,p1是引用变量,new Point()创建了一个对象,然
 后通过赋值运算将对象的地址赋予引用变量,二者有了联系
(4)变量不是对象,当变量的值是NULL时,调用了变量的属性或者方法,会出现空指针
 异常!

构造器(方法)
(1)构造器一般用来实现对象成员变量的初始化,描述了一个类的创建过程。
 -构造方法名称必须与类名相同。
 -构造方法没有返回值,但也不能写void。参数列表可有可无。
 -只能使用new运算调用
(2)new运算调用构造器,返回对象。先分配对象空间,再执行构造器。分配的空间按照
 属性分配,放在堆中。类中的方法是放在方法区中的。
(3)构造器可以重载,利用构造器重载特性可以很方便地创建各种属性不同的相似对象。
 重载方法与一般方法重载类似。

默认构造器
(1)在没有显示定义构造器时java编译器会自动分配一个默认构造器。
(2)默认构造器是参数列表和方法体都是空的构造器。

this的使用场景
(1)在类中的方法中,如果参数列表变量名称和类中的实例名称一样,编译器不能从名字
 上区分两个变量,此时必须使用this关键字
(2)若编译器能够区分方法中的变量和实例变量,则可以省略关键字this。

继承
(1)关键字 extends。
(2)父类型叫做super class ,子类型叫做sub class。
(3)子类从父类中继承属性和方法(除了构造方法和私有方法、属性)。
(4)子类对象可以赋值给父类型的变量。赋值后,两个变量引用了同一个对象。
 反过来,父类型对象不能直接赋值给子类型变量。如果实在要这样做,只能强制转换。
(5)子类的构造方法中必须通过super关键字调用父类的构造方法,这样可以妥善初始化继承自父类的成员变量。
(6)如果子类的构造方法中没有调用父类的构造方法,java编译器会自动加入对父类无参数构造方法的调用
 但是如果该父类没有无参的构造方法,则会出现编译错误。
 可见,定义类时最好定义一个无参构造函数。
(7)super()一定在构造器的第一行使用。
 如果没有,则默认存在super();

this()
(1)this(),用于调用本类的其它构造器
(2)按照参数调用构造器,必须在构造器中使用,必须在第一行使用。
(3)this()与super()互斥//没看明白
(4)this. 与this()的不同。两个this没有必然联系
 this. 用于访问当前对象
 this()是调用本类构造器
(5)super. 访问继承自父类的属性。

引用类型转换
(1)子类的引用变量可以直接赋值给父类的变量
(2)父类的引用变量不能直接赋值给子类的引用变量,如果实在要赋值,只能强制转换
 但是如果父类引用变量此时不是指向相应子类的对象,强转就会出编译错误。
(3)为了解决(2)的不稳定性,引入了instanceof运算。

instanceof运算
(1)用于检查变量引用的对象的类型是否兼容。
(2)使用方法:
 变量名 instanceof 类名 返回boolean类型
 表示变量名指向的对象是否是类名的对象。
(3)为了保险起见,引用类型的强制类型转换必须和instanceof配套使用。
(4)定义方法时,将形参类型定义为基础类,则基础类的所有衍生类都可以传递进来,
 在函数内部使用instanceof运算区分,可以体现多态性。

方法的重写(Overwrite)
(1)子类重写继承自父类的方法,即方法名和参数列表与父类的方法相同,但方法的
 实现不同。
(2)子类对象的重写方法被调用时,无论是通过子类的引用调用还是通过父类的引用
 调用,运行都是子类的重写后的版本。
(3)再子类重写的方法中,可以通过super关键字调用父类的原始方法。

其他知识点:
(1)变量必须初始化之后才能使用,否则会出现编译错误。
(2)当方法的参数列表中有引用变量时,并不会去新建一个对象,而是在调用时将实参
 对应的对象动态绑定到形参上,这个形参是会在栈中分配资源的。传递的实际上是
 对象的地址值。
(3)正式的程序写法是一个文件一个类。
(4)java中,只要类在同一个包中,类之间就可以相互知道位置。
(5)在静态方法中,不能直接访问非静态成员(变量和方法)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值