文档介绍:Java面向对象
面向对象的一个特征需要一系列的完整设计,同时取出所要用到的工具;
面向对象的三个特征:封装;继承;多态。(按顺序的)
继承:用于扩展类的功能;
类:类是对某一类事物的描述,是抽象的、概念上的定义;
对象:对象是实际存在的该类事物的每个个体,因而也称为实例(instance)
共性称为类,个性称为对象,必须先有类才有对象;
类是对象的模版,对象是类的具体实现;
属性也叫成员变量
方法也叫成员方法
类的定义:
class Person //首字母必须大写
{
//名字,年龄...
String name;
int age;
};
//要使用类需要一个对象;
创建对象:
类名对象名= new 类名称();
Person wwf = new person();//a:声明一个对象(在栈内存中开辟空间);
= "wangwenfeng";//;
//b:为对象实例化(在堆内存开辟空间);
= 20;
输出对象:
("姓名:"+);
("年龄:"+);
对象生成后如果没赋值将自动为对象中的属性赋以默认值“null”,数字默认为“0”
在方法中声明对象时必须赋值;
!!错误:NullPointerException—>空指向异常(对象未分配堆内存空间)——没有声明(new)对象
对象的引用传递:
Person wwf2 = null;
wwf2 = wwf;//wwf2就指向wwf的空间,wwf2改变值之后,wwf的值也会跟着改变;
在类中调用方法用this来调用,表示类中的属性;
封装:
把需要的东西保护起来,用private来实现封装(属性不能让外部看见);
private声明的属性只能在本类看见;
通过set方法来设置private成员变量的属性
使用:
private String name;//私有成员
public void setName(String str){ //必须是setName
name=str;
}
通过get方法来取得private成员变量的属性值
使用:
public String getName(){
return name;
}
构造方法:
——它具有与类相同的名称;
——它不含返回值类型的定义;
——它不能在方法中用return语句返回一个值
构造方法调用时间:
—构造方法在实例化对象(new的时候)时被自动调用,主要用来为类中的属性初始化
对象的声明:类对象名= new 类(); 其中“类()”就是调用构造方法;
构造方法的重载:
——与一般方法重载类似,只要参数的个数或类型不同即可
!!在java中每个类必须有一个构造方法,如果没有构造方法,则会自动生成一个无参的什么都不做的构造方法,因为所有的对象产生时搜必须调用构造方法;
如果程序中已经明确写出了构造方法,则不会再产生一个无参的什么都不做的方法
无论采用哪种方法为类中的属性赋值,最好都经过setter方法对输入的内容进行检测,而getter方法只是将内容简单返回,用private定义;
类的继承:
一、无继承时多类协作:
二、类继承和实现:
在类定义是通过extends实现类的继承,定义类的一般形似为:
类访问权限修饰符(public 、private...) class 类名 extends 父类名{
类体
}
eg: class Person{ //定义一个Person类
int salary;
void employed(){ //Person类的employed方法
if(salary==0)
("no job");
else
("job");
}
}
class Childen entends Person{ //Chlid类继承Person类
int age;
void PrintAge(){("Age:+age");}
public static void main(String[] args){
Children c= new Children();
= 560; //从Person类中继承的属性变量
= 12; //本类的变量属性