目录
JAVA OPP:面向对象程序设计
面向对象是基于面向过程,对象是将功能进行了封装。只要找到了具体的类,创建出对象,就可以调用其中的具体功能。
提高代码复用性
可以将实现的细节封装起来,然后供其他用户调用。
类【属性+功能】是抽象的,实例【对象】是具体的。
一、类与对象
1、对象的分析:
1)从多个实例中分析对象的静态特征和动态特征。
静态特征:事物固有的属性;
具有默认值的属性,同数组类型中的默认值相同。
动态特征:事物存在的行为【方法】;
在方法中直接使用。
2、类和对象的关系:
类似抽象的概念的代表一类事物,即它为数据类型
对象是具体的,实际的代表,一个具体事务极为实例。
类是对象的模板,对象是类的一个个体,对应一个实例。
面向对象程序设计就是使用对象进行程序设计,对象object就是一个实例。
3、JVM的内存形式
栈:存放基本数据类型(局部变量)
堆:对象、数据、每new一次则在方法区会加载一个类信息(包括属性和行为信息)
方法区:常量的常量池加载信息。如果是一个字符串,则堆指向在方法区的常量池的内容。
4、属性(也叫成员变量)
属性是类的一个组成部分,一般是基本数据类型,也可以是引用数据类型
属性的定义与法同变量:访问修饰符 属性类型 变量名
属性的定义类型可为任意值,包含基本类型或引用类型
属性如果不赋值则存在默认值
二、创建对象:
1、类名 对象名 =new 类名();
对象名.方法名();
//方法名:驼峰命名法:第一个单词小写,第二个单词首字母大写(有一定含义)
一个对象属性值的更改,不会影响到其他属性。
public class 类名{
//静态特征【属性】
String brand;
int year; //数据类型+名字
//动态特征【方法】
public void info(){
System.out.printIn(brind);
}
}
//创建对象
public class carTest{
public static void main(String[] args){
Car car = new Car(); // 类名 对象名=new 类名();
car.brand ="'; //给属性进行赋值
car.info(); // 调用info方法
}
}
匿名对象: new 对象名(). 方法名();——匿名对象只能使用一次。
流程
加载类信息——在堆中分配空间进行默认值初始化——把地址赋给类——进行指定初始化