翁凯-----java课程入门与进阶1

听起来蛮有意思的,继续看看吧~

类与对象

这部分已经学完了入门课程,听翁凯老师的课程总有一种很安心的感觉。虽然学的不是很好,期末考试的编程题并没有在规定时间内搞定,之后的也有一些问题,但还是想继续听下去,继续学习。

类定义了对象;对象是类的实体。
今天老师又用了自动售卖机当例子讲解面向对象的编程思想和解释如何定义类,成员对象和成员函数,以及对象的初始化。

对象=属性(数据)+服务(操作,函数)
封装是指将数据和对数据的操作放在一起。

面向对象的编程思想主要考虑两个事情,第一,有什么东西?第二,能做什么事情?
对于自动售卖机来说,大概可以说一下的几个。

price;
balace;
amont;
getmoney();
showtips();
showbalace();
chuhuo();

this是成员函数的一种特殊固有本地变量。

public class Circle extends Shape {
private int x;
private int y;
private int radius;

  public Circle(int x, int y, int radius)
{
    this.x = x;
    this.y = y;
    this.radius = radius;
}  

构造函数:在构造的时候会被自动的调用,不能有返回类型。构造函数与类的名称一致;

对象交互

好溜,好神奇。 原来这样就是面向对象的思考方式~


翁凯-----java课程入门与进阶1_第1张图片
时钟例子.JPG

封装

封装,就是把数据和对这些数据的操作放在一起,并且用这些操作把数据掩盖起来,是面向对象的基本概念之一,也是最核心的概念。

我们有一个非常直截了当的手段来保证在类的设计的时候做到封装:

  • 所有的成员变量必须是private的,这样就避免别人任意使用你的内部数据;
  • 所有public的函数,只是用来实现这个类的对象或类自己要提供的服务的,而不是用来直接访问数据的。除非对数据的访问就是这个类及对象的服务。简单地说,给每个成员变量提供一对用于读写的get/set函数也是不合适的设计。
翁凯-----java课程入门与进阶1_第2张图片
private 概念

private 针对类,同一个类的所有对象互相可以访问private的成员变量以及成员函数。

当你的程序越来越大的时候,你就会需要有一个机制帮助你管理一个工程中众多的类了。包就是Java的类库管理机制,它借助文件系统的目录来管理类库,一个包就是一个目录,一个包内的所有的类必须放在一个目录下,那个目录的名字必须是包的名字。
作为初学者,你可以忽略不看包,反正一切靠Eclipse。但是作为一个Java程序员,你不能不懂包。要不然,在使用别人的类库和部署你的程序的时候,会遇到不少莫名其妙的麻烦。

对象容器

容器是现代程序设计非常基础而重要的手段。

所谓容器,就是“放东西的东西”。数组可以看作是一种容器,但是数组的元素个数一旦确定就无法改变,这在实际使用中是很大的不足。一般意义上的容器,是指具有自动增长容量能力的存放数据的一种数据结构。在面向对象语言中,这种数据结构本身表达为一个对象。所以才有“放东西的东西”的说法。

Java具有丰富的容器,Java的容器具有丰富的功能和良好的性能。熟悉并能充分有效地利用好容器,是现代程序设计的基本能力。

我们首先学习的是顺序容器,即放进容器中的对象是按照指定的顺序(放的顺序)排列起来的,而且允许具有相同值的多个对象存在。

Java容器实际上只有三种:Map , List, Set;但每种接口都有不同的实现版本.它们的区别可以归纳为由什么在背后支持它们.也就是说,你使用的接口是由什么样的数据结构实现的.

翁凯-----java课程入门与进阶1_第3张图片
容器API类图
  • List的选择: 比如:ArrayList和LinkedList都实现了List接口.因此无论选择哪一个,基本操作都一样.但ArrayList是由数组提供底层支持.而LinkedList是由双向链表实现的.所以,如果要经常向List里插入或删除数据,LinkedList会比较好.否则应该用速度更快的ArrayList。
  • Set的选择 HashSet总是比TreeSet 性能要好.而后者存在的理由就是它可以维持元素的排序状态.所以,如果需要一个排好序的Set时,才应该用TreeSet。
  • Map选择: 同上,尽量选择HashMap。

你可能感兴趣的:(翁凯-----java课程入门与进阶1)