java学习笔记(1)

来源:互联网 发布:php remove 编辑:程序博客网 时间:2024/04/30 01:12
面向对象主要针对面向过程。 面向过程的基本单元是函数。  
什么是对象:EVERYTHING IS OBJECT(万物皆对象)  
所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做什么(方法):告诉外界对象有那些功能。 后者以前者为基础。 
大的对象的属性也可以是一个对象。  
为什么要使用面向对象: 
首先,面向对象符合人类看待事物的一般规律。 
对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。 方法的定义非常重要。方法有参数,也可能有返回值。  
注意区分:对象(本身)、对象的实现者、对象的调用者。 分析对象主要从方法开始。 
我们通过类来看待对象,类是对象的抽象。  
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。 对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。这样才能使每个对象本身做成最好的。  
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。 实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。 可复用性是OOP的基础。  
比较面向过程的思想和面向对象的思想: 
面向过程的思想:由过程、步骤、函数组成,以过程为核心; 
面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 
面向对象是先有数据结构,然后再有算法。  
在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。 开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能 。 从语法上来看,一个类是一个新的数据类型。 
在面向对象编程中,除了简单数据类型,就是对象类型。 定义类的格式: class  Student{   代码 } 
注意类名中单词的首字母大写。 
实例变量:定义在类中但在任何方法之外。(New出来的均有初值)局部变量:定义在方法之中的变量。 
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。这是局部变量和实例变量的一大区别。 实例变量的对象赋值为null。 
局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。 
实例变量和局部变量允许命名冲突。  
书写方法的格式: 
修饰符   返回值       方法名           调用过程中           方法体 
可能出现的例外 
 public  int/void   addNumber(参数)    throw Excepion          {}  
例: 
public  int  addNumber(int a,int b){ } 
注:方法名中的参数int a,int b为局部变量  
类方法中的一类特殊方法:构造方法。 
构造方法是当用类生成对象时,系统在生成对象的过程中利用的方法。 
注意:构造方法在生成对象的时候会被调用,但并不是构造方法生成了对象。 构造方法没有返回值。格式为:public 方法名。 构造方法的方法名与类名相同。 
构造方法是在对象生成的过程中自动调用,不可能利用指令去调用。 
在一个对象的生成周期中构造方法只用一次,一旦这个对象生成,那么这个构造方法失效。  
用类来生成对象的语句: Student  s=new Student()。 
第一个Student表示这是用Student类进行定义。“Student()”表示调用一个无参数的构造方法。 如果()中有参数,则系统构造对象的过程中调用有参的方法。 此时S称为一个对象变量。 
 Student  s的存储区域存放的是地址:一个对象在硬盘上占有一个连续地址,首地址赋予s空间。 S称为对象Student的引用。 
注意:在对象变量中存放的是引用(地址);在简单变量中存放的是数值。  
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法: public student(string name,int a){ } 
public student(int a,string name){ } 
为两个不同的构造方法。 
如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。 练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。 (编写一个程序验证对象的传递的值为地址) 注意下面这种形式: 
static void changename(student stu){stu.setName “LUCY”} 
注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。  
面向对象方法的重载(overloading)和覆盖(overriding)。 
在有些JAVA书籍中将overriding称为重载,overloading称为过载。
0 0
原创粉丝点击