5.1 面向对象的基本概念:
对于面向对象程序设计有3个主要的特征: 封装性 继承性 多态性
1.封装性:有两个含义一是把对象的属性和行为看成一个不可分割的的整体;
二是把信息进行隐蔽处理。
2.继承性:继承是面向对象方法中的重要概念,是提高效率的重要手段。
单继承:一个子类只允许继承一个父类
多继承:一个子类可以继承多个父类 通过接口(interface)
3.多态性:多态是允许程序中出现重命现象;
Java语言中含有方法重载和与对象多态两种结构
方法重载:在一个方法中允许多个方法使用一个名字,但方法的参数不同,完成的功能也不同
对象多态:子类对象可以与父类对象进行相互的转换,而且根据其使用的子类的不同完成的功能也不同
5.2 类与对象:
4.类 定义一个基本的模板,代表着一个共性。
类是由属性和方法组成的
class Person{
String name;
int age;
public void tell(){
System.out.println("姓名:"+name+"\t年龄"+age)
}
}
5.对象 每个个具体的人根据具体不同姓名代表一个个性。
对象的创建及使用:
类名 对象名称 =nell;
对象名称 =new 类名();//只要有关键字new就表示开辟了新的堆内存空间。
类名 对象名称 =new 类名();
注:对象使用前必须先实例化
访问对象中的属性和方法:
访问属性:对象名称.属性名
访问方法:对象名称.方法名
Person per=new Person();
6.引用数据类型:一段堆内存空间可以被多个栈内存所指向 当两个栈指向一个堆时可能会产生垃圾。
7.垃圾回收机制(GC)
会不定期释放不用的内存空间,只要对象不使用了,就会等GC释放空间。
5.3 封装性:
8.格式:
为属性封装 : private 属性类型 属性名称;
为方法封装 : private 方法返回值 方法名称(参数列表){}
9.通过setter()和getter()可以设置获取属性.
代码示例:
package XXX;
public class Objeck {
public static void main(String[] args) {
Person per=new Person();
//使用setter设置值
per.setName("小明");
per.setAge(20);
//读取方法
per.tell();
}
}
//Person类的建立
class Person{
//private建立私有的属性 name age (封装)
private String name;
private int age;
public void tell(){
System.out.println("姓名:"+getName()+"\t年龄"+getAge());
}
//setter设置
public void setName(String n){
name=n;
}
//getter获取
public String getName() {
return name;
}
public void setAge(int x){
//if语句对setAge设置的值的筛选,若不在范围内输出默认值0
if (x>0 && x<150){
age=x;
}
}
public int getAge() {
return age;
}
}