------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
(1)面向对象:要经过完整的分析,设计之后才可以进行开发
面向过程:专注于解决问题
(2)面向读写的三大特征
封装:对外部不可见,保护类中的操作不被外部直接访问
继承:扩展类的功能,
多态:方法的重载,相同的方法名称根据参数的类型和个数不同调用的方法不同
对象的多态性,
(3)类与对象
类:共同属性或操作的集合
对象:是实际存在的事物个体,也叫做实例
没有类则没有对象的产生;没有对象类不能使用;对象的所有属性和操作都在类中实现。
类是对象的模板,对象时类的实例。
(4)类与对象的定义
类的组成:属性,方法
定义方法:
class 类名称 { 数据类型 属性名称; [权限][静态] 返回值类型 方法名(参数列表) { 方法体 } }
对象的定义: 类名 对象名=new 构造方法名() 产生对象之后,就可以调用类中的属性或方法。
访问属性:对象名称.属性名称=值
访问方法:对象名称.方法名称() 对象的产生:
声明对象:类名称 对象名称=null;直接使用此对象,会出现空指向异常
实例化对象:对象名称=new类名称()开辟堆内存空间,才可以直接使用 如果对象在使用中只是声明的话,则无法直接调用,必须实例化后才能使用。
数组的产生于数组一样,有堆-栈空间。对象实际上保存在栈内存中;实例化之后对象开辟对应的堆内存空间,堆内存中存放的是对象的各个属性,因为对象中只能依靠属性的不同来区分;全部的方法保存在全局代码区中。
只要出现new就会开辟新的内存空间。
对象的操作中实际上存在引用传递,所谓引用传递,就是将一个堆内存空间的使用权交给其他对象,相当于为一个堆内存空间起一个别名。
在程序中所造成的无指向堆内存空间是垃圾空间,垃圾空间等待垃圾回收机制释放空间,垃圾回收称为GC 一个栈内存只能引用一个堆内存空间,但是一个堆内存空间可以被多个栈内存所同时指向。
封装性
(1)封装介绍 封装属性:private数据类型 属性名称=默认值 封装方法:private返回值类型 方法名(参数列表){} 私有的属性或方法只能在类里访问。
只要属性必须封装,被封装的属性通过setXX()及getXX()方法设置取得。
class Person{
private String name ; //表示人的姓名
private int age; //表示人的年龄
public void tell(){ //定义说话的方法 /this表示在本类中调用该方法
System.out.println("姓名:" + this.getName() + ",年龄:" + this.getAge())
}
public void setName(String n)
{
name = n ;
}
public void setAge(int a)
{
if(a>=0&&a<=200)
{
age = a ;
}
}
public String getName()
{ return name;
}
public int getAge()
{ return age ;
}
};
public class OODemo10
{ public static void main(String args[])
{ Person per = new Person() //实例化对象
per.setName("张三") //为name属性赋值
per.setAge(-30);
per.tell() } };