标签:
面向对象,面向过程都是一种思想,没有高低之分。面向对象,就像是对冰箱操作,冰箱是一个介质,用法就像是c语言中的结构体,功能定义在对象上。面向对象,角色转变,让我们从执行者变成指挥者,面向过程是面向对象的基础。
面向对象,三大特征:封装,继承,多态。开发就是找对象使用,没有对象,造一对象,找对象,建立对象,使用对象,维护对象。
class Clothes{ String color; char size; } public class Field{ public static void main(String[] args){ Clothes sun = new Clothes(); } }
sun就是一个类类型变量,类类型变量指向的是对象。
类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例。类在定义时要使用关键词class,而具体对象就是对应java在堆内存中用new建立的实体。 类是对现实生活中的描述,对象是实实在在存在的个体,对象在java中是堆内存中new创造出来的实体,描述是class定义的类,描述事物,就是描述其属性和行为,属性对应变量,行为对应函数;Car c=new Car(),c是一个类类型变量,类类型指向对象;堆内存默认初始化值Null。java指挥方式,是对象成员。
在一个java文档中可以有多个类,当类只需要描述一个事物,而不需要独立运行的时候,是不用写主函数的,但是必须铭记一类一文件。
java.util.Scanner类:java.util.Scanner的nextInt()方法会看看标准输入中,有没有输入下一个字符串(以空格或换行分隔),有的话会尝试将之剖析为int类型,其它的nextByte()、nextShort()等作用都类似。如果直接取得上一个字符串(以空格或换行分隔),则使用next(),如果想取得用户输入的整行文字,则使用nextLine()(以空格或换行分隔),总而言之Scanner类大大简化了Java的输入。
java.math.BigDecimal类:Java遵守IEEE754浮点数运算规范,使用分数与指数来表示浮点数,这样就导致无法精确的进行运算,从而造成运算上的误差,比如1.0-0.8的结果就不是0.2。因此如果要求精确度,那就要小心使用浮点数,而且不能用==直接比较浮点数运算结果,所以我们可以使用BigDecimal类来得到想要的精确度。
当=用于基本类型时,是将值复制给变量,==是比较两个变量储存的值是否相同;当在操作对象时,=是用来指定参考名称参考某个对象,==是用来比较两个参考名称是否参考同一对象,!=正好相反,是比较两个名称是否没参考同一对象。
在基本类型中,=是将值复制给变量,而==是比较两个变量储存的值是否相同。但是,如果是在操作对象时,=是用在指定参考名称参考某个对象,而==是用在比较两个参考名称是否参考同一对象,换句话说也就是=是用在将某个名牌绑到某个对象,而==是用在比较两个名牌是否绑到同一对象。 equals是逻辑上相等,比如a.equals(b)意思就是判断a名牌绑定的对象与b名牌绑定的对象实际上内含值是否相同,因此equals()和==是不一样的。
数组在Java中就是对象,Java会检查数组的边界,一旦越界就会抛出ArrayIndexOutOfBoundsException的错误,数组在Java中就是对象。对象的一些特点性质都可以在数组中使用。定义数组的方法,如果知道是哪些具体的数,则可以如课本P95一样,不知道具体的数可以像P98一样。在定义二维数组时,也可以仿照一维数组进行定义,总之,数组就是对象,这是数组最大的特点。
在Java中可以使用System.arraycopy()的方法来进行数组值的复制,它会使用原生方式复制每个索引元素,比使用循环更快。在JDK6以上的版本中,还有个更方便的Arrays.copyOf()的方法,能够帮你建立新的数组。无论System.arraycopy()还是Arrays.copyOf(),用在类类型声明的数组时,都是执行浅层复制。
字符串本质是打包字符数组的对象,是java.lang.String类的实例。 要想比较字符串实际字符内容是否相同,不能使用==,要用equals(),这一点前面也提到了。 字符串对象一旦建立,就无法更改对象中的内容,使用+会产生新的String实例,不要将+用在重复性的连接场合。
使用javac指令没有指定-encoding选项时,会使用操作系统默认编码。定义字符串使用String a.charAt(0)//显示第一个字符 a.toUpperCase()//显示字符串
static用于修饰成员(成员变量和成员函数),被声明为static的成员,不会让个别对象拥有,而是属于类。
在static方法中不能出现this关键字,static方法中不能用非static数据或方法成员。 import static语法是为了偷懒,但要注意名称冲突的问题。
public , 可在类、对象数据成员、方法、构造函数中使用;如果成员没有声明权限修饰,那么只有在同一包的内程序代码中,才可以直接存取,也就是“包范围权限”;想在其他包的内程序代码中存取某包的类或对象成员,则该类或对象成员必须是公开成员,使用 public 以声明。
private用在成员变量前,这是一种保护机制,不让自己这个类以外的方法去随便使用存取这个类的数据,可以保护私有数据,只能通过调用自己类的方法去操纵这些数据。private如果用在类或方法前,程序就会报错。不过,其实也可以用在方法或构造函数声明上,私有方法或构造函数通常是类内部某个共享的演算流程,外借不用知道私有方法的存在。一般用在内部类声明中。
class Car { String color = "red"; int num = 4; void run() { System.out.println(color+‘ ‘+num); } } public class Carfac { public static void main(String[] args) { /* Car c= new Car(); c.color = "blue"; c.run() ; Car c1=new Car() ; c1.run() ;*/ new Car().num =5; new Car() .color ="BLUE"; new Car() .run(); } }
import java.util.Scanner; public class Fib { public static void main(String[] args){ System.out.printf("要求解费氏数的个数:"); Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); for(int i=0;i<n;i++) System.out.print(fibry(i+1) + " "); System.out.println(); } public static long fibry(int x){ if(x==1) return 0; else if(x==2) return 1; else return (fibry(x-1) + fibry(x-2)); } }
有道是,“纸上得来终觉浅,绝知此事要躬行。”我在第一篇博客中写道,开始的Java对于我来说就像是才长出芽的荷花,虽然等到她芳香四溢还要经历一段时间的成长,但是我会像那只蜻蜓一直守望者,坚持着! 在不断地实践探索中,书本上的知识学习,亦或是视频上的学习,都不如自己亲手敲代码,因为亲自动手获得的感觉就是与众不同。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 2/2 | 15/15 | 学会搭建Java环境,学会写一些简单程序,掌握一些小技巧 |
第二周 | 100/200 | 2/4 | 22/37 | 学会使用IDEA |
第三周 | 150/350 | 1/5 | 24/61 | 深入了解面向对象 |
第四周 | |
20145211 《Java程序设计》第3周学习总结——绝知此事要躬行
标签:
原文地址:http://www.cnblogs.com/nostalgia-/p/5300262.html