标签:
面向对象:三大特征:封装,继承,多态。
开发就是找对象使用,没有对象,就创建一份对象。找对象,建立对象,使用对象,维护对象的关系。
类和对象的关系:
类就是对心事生活中的食物的描述。对象就是这类事物,实实在在存在的个体。
描述对象事物的属性和行为
属性对应类中变量,行为对应类中的函数(方法)
其实定义类,就是描述事物,就是在定义属性和行为,属性和行为共同成为类中的成员(成员变量和方法)
对象的指定方式是对象.对象成员
在一个java文档中可以有多个类,当类只需要描述一个事物,而不需要独立运行的时候,是不用写主函数的,例如教材第84页的Clothes类就没有主函数,它只是为了描述事物,这也类似于我们C语言中定义一个函数。不过我们尽量不要在一个类中写多个class,如果有多个class,也只能有一个类前面加public,要养成一类一文件的习惯。
类类型变量指向对象实体
成员变量作用于整个类中,局部变量作用于函数中或者语句中。 成员变量在堆内存中,因为对象的存在,才在内存中存在。局部变量存在在栈内存中。
匿名对象使用方式:1、当对象的方法只电泳一次时,可以用匿名对象来完成,这样写比较简化。如果对一个对象进行多个成员调动是,必须给对象起个名字。2、可以将匿名对象作为实际参数进行传递。
两个基本的标准类:java.util.Scanner与java.math.BigDecimal()
java.util.Scanner
java.util.Scanner可以帮助你偷懒。
java.util.Scanner类:java.util.Scanner的nextInt()方法会看看标准输入中,有没有输入下一个字符串(以空格或换行分隔),有的话会尝试将之剖析为int类型,其它的nextByte()、nextShort()等作用都类似。如果直接取得上一个字符串(以空格或换行分隔),则使用next(),如果想取得用户输入的整行文字,则使用nextLine()(以空格或换行分隔),总而言之Scanner类大大简化了Java的输入。
java.math.BigDecimal()
创建BigDecimal的方法之一是使用字符串,BigDecimal在创建时会剖析传入字符串,以默认精度进行接下来的运算。BigDecimal提供有plus(),substract(),multiply(),divide()等方法,可以进行加、减、乘、除等运算,这些方法都会返回代表运算结果的BigDecimal。
可以使用Long、Integer、Double、Float、Boolean、Byte等类来打包基本类型,这些类就是所谓的打包器,这些泪主要目的就是提供对象实例作为“壳”,将这些类型打包到对象之中,这样就可以操作这个对象,可以让java基本类型像对象一样操作。
在java中数组是对象,而不是单纯的数组集合,数组一旦建立,其长度就固定了。
一维数组使用一个索引存取数组元素,二维数组使用两个索引存取数组元素。
在Java中可以使用System.arraycopy()的方法来进行数组值的复制,它会使用原生方式复制每个索引元素,比使用循环更快。在JDK6以上的版本中,还有个更方便的Arrays.copyOf()的方法,能够帮你建立新的数组。无论System.arraycopy()还是Arrays.copyOf(),用在类类型声明的数组时,都是执行浅层复制。
封装目的就是隐藏主要的对象细节,将对象当作黑箱进行操作用户会调用构造函数,但不知都构造函数的具体细节,知道方法,但不知道其流程。
this关键字
this代表其所在函数所属对象的引用,简而言之就是this代本类对象的引用,当在函数内需要用到调用该函数的对象时,我们就可以使用this。this()调用只能出现在构造函数的第一行。
static关键字
被声明为static的成员,不会让个别对象拥有,而是属于类。我们也是通过类名称与“.”运算符,就可以取得static成员。我们一直在用的System.in与System.out中的in与out都是static成员。
static成员属于类所有,将类名称当作名称空间是其最常使用的方式。正是由于static成员是属于类,而非个别对象,所以在static成员中使用this会是一个语意上的错误。有些情况没有写this,但是隐含了this的意义在里面,因此也会发生编译错误。
.class被JVM加载后,默认就会执行static区块。在JDK5之后,新增了import static语法,可以在使用静态成员时少打几个字。我们可以通过import来偷懒,偷懒过头就会出现问题,要注意名称冲突问题,有些名称冲突,编译程序可通过以下顺序来
对于类的理解起先光看概念难以理解,但之后将其与代码结合实例将理解的更加透彻
此次学习是我第一次使用eclipse编写代码,有许多地方都是借助同学的帮助才解决了问题的。
对栈和堆的定义没有搞懂,在看视频和回忆老师上课所讲最终理解了两者的区别与联系
在编写代码时保存文件不在同一个包里,因此运行总是上一个文件,将文件复制过来然后就可以运行了。
在解决问题时,画流程图是一个很好的办法。在编写代码时,你可以先画出流程图,然后再将流程图转化为代码。在阅读代码时,你也可以先将代码转换为流程图,然后再将流程图看懂。这样做调理清晰,不会应为代码复杂而扰乱自己的思路。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 150/150 | 1/1 | 15/15 | |
第二周 | 150/400 | 1/2 | 15/ 30 | |
第三周 | 150/550 | 1/31 | 20/40 |
标签:
原文地址:http://www.cnblogs.com/20145336yang/p/5300322.html