基本概念
一、什么是面向对象
- 面向对象是一种编程思想
- 面向对象是一种思考问题的思维方式
二、建立面向对象的思维方式
先整体,在局部;先抽象,在具体;能做什么,再做什么
类和对象
类是分类类别,通过分类可以区分不同事物种类
类是具有一组相同特征(属性)与行为(方法)的事物集合
类和对象的关系
类是一个共性的产物,是一个综合的特征;对象是一个个性的产物,是一个个体的特征
类是由属性和方法组成:属性:特征 ;方法:行为
JAVA定义类的语句
class 类名称{
属性名称;
返回值类型 方法名称(){}
}
对象的定义:
类想进行操作,必须依靠对象。格式如下
类名称 对象名称 = new 类名称();
访问类中的属性或者方法依靠语法:
访问类中的属性:
对象.属性
调用类中的方法:
对象.方法()
面向对象和面向过程的区别
面向对象:以对象为单位,通过调度组合不同的对象来完成某一个事情
面向过程:以步骤为单位,一步步完成某一个具体的事情
JAVA对象声明有两种含义
声明对象:Main main = null; 表示声明了一个对象,但是对象无法使用,main没有具体的内存指向
实例化对象:main = new Main();表示实例化对象,可以使用
通过对象调用方法 main.getmenu()
匿名对象调用方法new main().getmenu()
示例:
public class Main {
public static void main(String[] args){
//int i = 0;
Test t = null;//声明了一个类的变量(除了八种基本数据类型以外都是引用数据类型,包括数组)
//创建一个Test类型的对象,实例对象
t = new Test();
//调用对象的属性和方法
t.name = "搬砖搬五块";
t.age = 18;
t.ensure();//调用方法,执行方法
//匿名对象:只能使用一次,使用完对象将释放
new Test().ensure();
t = null;//对象释放
//h.ensure();当对象不存在时,调用对象属性和方法将报错(空指针)
}
}
//自定义一个类(类型)
class Test{
//在类中定义属性(特征)
String name;
int age;
public void ensure(){
System.out.println("我是" + name + "我今年" + age + "岁");
}
}
输出结果:
new关键字表示创建一个对象;表示实例化对象;表示申请内存空间
- new关键字向内存申请空间表示实例化一个对象创建一个对象
- 对象在内存上的大小由所有属性所占的内存大小的总和。引用类型变量在32位系统上占4个字节,在64位系统上占8个字节,加上隐形数据所占的大小
- 相同的类型才能赋值
- 不同引用指向同一个对象,任何一个引用对象值的,其他引用也会反映出来
- 不确定使用对象时要尽早释放
- 对象没有被引用变量所指向时,会被认为是垃圾对象从而被回收