**
Java 类与对象
**
一、首先,我们需要了解一下面向对象和面向过程的基本概念。
1.面向过程:在分析出解决问题的时候,首先把问题分成若干个步骤,然后将每个步骤都定义为一个函数,函数定义好了就意味着这个问题的解决步骤已经确定,使用时候就可以直接调用就行;
2.面向对象:将构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事务在整个解决问题的步骤中的状态和行为。面对对象中体现的是产生行为的各个对象之间的关系。
3.面向对象与面向过程的关系:面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。
但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,所以,面向对象的开发更像是一个具备标准的开发模式。
4.面向对象的一些基本上的特征:
(1)封装:保护内部的操作不被破坏;
(2)继承:在原本的基础之上继续进行扩充;
(3)多态:在一个指定的范围之内进行概念的转换。
二、类与对象的基本概念
(1)类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);
(2)对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。
总而言之,类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。换言之,类的主要作用是用来作为一个模板,我们可以根据类来创建出许许多多的对象,而这些对象都具有在类中定义的属性和方法。如下图所示:
三、类与对象的定义和使用
在Java中定义一个类,使用关键字class就能够完成,语法如下:
class 类名称 {
属性 (变量) ;
行为 (方法) ;
}
范例:定义一个学生Student类
public class Student {
//这是学生的属性
int stusorce;//分数
String name;//学生的名字
//这是判断学生的考试成绩是否及格的方法
public void exam(int sorce) {
if(sorce < 60) {
System.out.println("考试没通过!");
}
else if(sorce >= 60) {
stusorce += 5;
System.out.println("考试通过!");
}
}
定义完类之后,肯定无法直接使用的。如果需要使用的时候,则需要依靠对象,那么类属于引用数据类型,则它的引用格式有以下两种:
(1)格式一:声明并实例化对象
类名称 对象名称 = new 类名称 () ;
(2)先声明对象,然后实例化对象
类名称 对象名称 = null ;
对象名称 = new 类名称 () ;
引用数据类型与基本数据类型最大的不同在于:引用数据类型需要内存的分配和使用。所以,关键字new的主要功能就是分配内存空间,也就是说,只要使用引用数据类型,就要使用关键字new来分配内存空间。
当对象产生后,可以按照下面的方式进行类的操作:
对象.属性:表示调用类之中的属性;
对象.方法():表示调用类之中的方法。
范例:使用对象操作类:
package com.yf0927;
public class Student {
//这是学生的属性
int stusorce;//分数
String name;//学生的名字
//这是判断学生的考试成绩是否及格的方法
public void exam(int sorce) {
if(sorce < 60) {
System.out.println("考试没通过!");
}
else if(sorce >= 60) {
stusorce += 5;
System.out.println("考试通过!");
}
}
public static void main(String[] args) {
//
Student stu1 = new Student();//声明并实例化对象
stu1.stusorce=25;//利用对象调用类中的属性(操作属性内容)
stu1.name="小明";//操作属性内容
stu1.exam(90);//调用类中的exam()方法
System.out.println("学分是:"+stu1.stusorce);//输出学生的学分
}
}