苏哥的Java日志(一)——类与对象

苏哥的Java日志(一)

?9.19.2018

1.Java的自动垃圾回收机制
2.本地变量(函数)和成员变量(类):生存周期和作用域
3.对象的交互
4.访问属性:private(类成员),public,friendly
5.编译单元:可以有很多Java类,public类只可以有一个
6.static:类内控制,与具体对象无关
7.容器1:容器类型和元素类型
顺序容器:ArrayList,可以直接输出容器

?9.20.2018
1.对象数组:当数组的元素的类型是类的时候,数组的每一个元素其实只是对象的管理者而不是对象本身。因此,仅仅创建数组并没有创建其中的每一个对象。
2.容器2:
$集合容器:set,无重复元素,无顺序性,可以直接输出容器
$散列表:传统意义上的Hash表,是能以int做值,将数据存放起来的数据结构。Java的Hash表可以以任何实现了hash()函数的类的对象做值来存放对象。

private HashMap< Integer,String> object = new HashMap<Integer, string>();
object.put(key, value);

$$键值唯一,一个键只对应一个值
3.继承与多态
基于已有的设计创造新的设计,就是面向对象程序设计中的继承。在继承中,新的类不是凭空产生的,而是基于一个已经存在的类而定义出来的。通过继承,新的类自动获得了基础类中所有的成员,包括成员变量和方法,包括各种访问属性的成员,无论是public还是private。
继承

class A{}
class B extends A{}

继承表达了一种is-a关系,就是说,子类的对象可以被看作是父类的对象。比如鸡是从鸟派生出来的,因此任何一只都可以被称作是一只鸟。但是反过来不行,有些鸟是鸡,但并不是所有的鸟都是鸡。
Java的继承只允许单继承,即一个类只能有一个父类
$除了构造方法,所有的父类的成员,包括变量和方法,都成为了子类的成员。

父类成员访问属性在父类中的含义在子类中的含义
public对所有人开放对所有人开放
protected只有包内其它类、自己和子类可以访问只有包内其它类、自己和子类可以访问
缺省只有包内其它类可以访问如果子类与父类在同一个包内:只有包内其它类可以访问。否则:相当于private,不能访问
private只有自己可以访问不能访问

$在构造一个子类的对象时,父类的构造方法也是会被调用的,而且父类的构造方法在子类的构造方法之前被调用。在程序运行过程中,子类对象的一部分空间存放的是父类对象。因为子类从父类得到继承,在子类对象初始化过程中可能会使用到父类的成员。所以父类的空间正是要先被初始化的,然后子类的空间才得到初始化。
父类构造初始化=>子类定义初始化=>子类构造函数
$子类变量与父类相同时,子类的函数只控制子类的。
$子类调用父类成员函数,需要关键词
$ 一个变量可以保存其所声明的类型或该类型的任何子类型。

?9.21.2018
1.Java的变量是多态的,当把子类的对象赋给父类的变量,发生向上造型

2.多态
$如果子类的方法覆盖了父类的方法,我们也说父类的那个方法在子类有了新的版本或者新的实现。对于外界来说,子类并没有增加新的方法,仍然是在父类中定义过的那个方法。不同的是,这是一个新版本,所以通过子类的对象调用这个方法,执行的是子类自己的方法。

$覆盖关系并不说明父类中的方法已经不存在了,而是当通过一个子类的对象调用这个方法时,子类中的方法取代了父类的方法,父类的这个方法被“覆盖”起来而看不见了。而当通过父类的对象调用这个方法时,实际上执行的仍然是父类中的这个方法。一个类型为父类的变量有可能实际指向的是一个子类的对象。

$当调用一个方法时,究竟应该调用哪个方法,叫做绑定。绑定表明了调用一个方法的时候,我们使用的是哪个方法。绑定有两种:一种是静态绑定;另一种是动态绑定。动态绑定在运行的时候根据变量当时实际所指的对象的类型动态决定调用的方法。
3.Java 的类型系统
$object类以及其自带的函数
$两个重要的函数:toString, equals

@Override    //Eclipse editor
public boolean equals(Object obj)
{
	return …
}

论Java的学习感受:即使目前我对于类的设计结构还是很糟糕,也还是有可能实现一个应用程序,使之运行并完成所需的工作。 当我想要对一个已有的程序做修改的时候,问题经常会浮现出来。所以对于顶层的设计很重要。接下来的时间我会努力体会思想,勤加练习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值