面向对象编程(java)一
前言:面向对象(Object Oriented)是一个编程理念,其发明者曾经获得图灵奖。对于初学者来说,应该从最直观的角度 来理解什么是面向对象。
1.1 认识类和对象
1.1.1 类
int age;
String name;
String sex;
其中int是一个数据类型。但是每次定义都需要定义多个变量。那么能否像int样“自创”一个数据类型(customer)使用?
答案是可以的。面向对象中的类(Class)就可以帮助用户完成。
1.1.2 定义类
最简单的类的定义,定义一个类的语法如下。
class 类名{
所含变量定义;
}
1.1.3使用类实例化对象
以简单的数据类型为例,有了int类型,用户还无法使用,能使用的是int类型的变量;同样,在定义了类之后只是定义了数据类型,要想使用类必须用该类型定义相应的“变量”。
一般情况下,由类定义“变量”不叫“定义变量”,而叫“实例化对象(Object )”。通过类实例化对象的最简单的语法如下。
##### 类名 对象名=new 类名();
1.1.4访问对象中的成员变量
对象名.成员变量;
对象名.方法(实参列表);
例如有下面这样一个类:
public class Test {undefined
private int num; // 成员变量
}
1.1.5对象的引用性质
和数组名一样,对象名也是表示一个引用。对象名赋值并不是将对象中的内容进行赋值,只是将引用赋值。
1.2认识成员函数
1.2.1成员函数
如:
void display(){
System.out.println("name = " + name);
System.out.println("sex = " + sex);
System.out.println("age = " + age);
JAVA中的函数编写在类中,一般称为成员函数。
1.2.2是定义和使用成员函数。
1.最简单的成员函数
viod 函数名称(){
函数内容;
}
例
void display(){
System.out.println("name = " + name);
System.out.println("sex = " + sex);
System.out.println("age = " + age);
2.加入参数的成员函数
viod 函数名称(类型1 参数名1,类型2 参数名2,……,类型n 参数名n){
函数内容;
}
例
void init(String n,String s,int a){
name=n;
sex=s;
age=a;
}
3.带返回类型的成员函数
返回类型 函数名称(类型1 参数名1,类型2 参数名2,……,类型n 参数名n){
函数内容;
return和函数返回类型一致的某个变量或对象;
}
例
int abs(int a){
rturn a>0?a:-a;
}
1.2.3函数参数的传递
当实际参数传递到函数中时,根据参数的类别,情况各不相同。以下两种情况。
1.简单数据类型采用直传递
2.引用数据类型采用引用传递
1.2.4函数重载
函数重载(Overload)是一个常见的功能。
函数重载也称为静态多态。多态(Polymorphism)是面向对象编程的特征之一。多态,通俗来讲就是一个东西在不同情况下呈现不同形态。为什么是静态的呢?因为虽然函数只有一个,但是源代码中还得根据不同参数编写多个函数。
1.3认识构造函数
1.3.1构造函数
Java构造函数,也叫构造方法,是Java中一种特殊的函数。与函数名相同,无返回值。
作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象的属性和方法。
public class ConfunDemo {
public static void main(String[] args) {
//输出Hello World。new对象一建立,就会调用对应的构造函数Confun(),并执行其中的println语句。
Confun c1=new Confun();
}
}
class Confun{
Confun(){
//定义构造函数,输出Hello World
System.out.println("Hellow World");
}
1.3.2定义和使用构造函数
构造函数也是一种函数,但是定义时必须遵循以下原则。
(1)函数名称与类的名称相同
(2)不含返回类型
定义了构造函数之后,在实例化对象时必须传入相应的参数列表,否则会报错。其使用方法如下。
类名 对象名=new 类名(传给构造函数的参数列表);