目录
1面向对象简述
1.1面向对象定义
面向对象: Java是一门
纯面向对象
的语言(Object Oriented Program,继承OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要
依靠对象与对象之间的交互
完成一件事情。
1.2面向对象特征
在面向对象定义之中,也规定了一些基本的特征:
(1)封装:
保护
内部的操作不被破坏
(2)继承:在原本的基础之上继续进行
扩充
(3)多态:在一个指定的范围之内进行
概念的转换
1.3
面向对象优点
用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。因为面向对象,更多的是要进行
子模块化
的设计,每一个模块都需要
单独存在
,并且可以被
重复利用
,所以,面向对象的开发更像是一个具备标准的开发模式。
2类与对象
类与对象是整个面向对象中最基础的组成单元。
2.1类与对象的概念
类
:是抽象的概念集合,表示的是一个
共性
的产物,类之中定义的是属性和行为(方法)
对象
:对象是一种
个性
的表示,表示一个独立的个体,每个对象拥有自己独立的属性,
依靠属性来区分不同对象
。
类中包含的内容称为类的成员。
属性:
主要是类的变量,称之为类的成员属性或者类成员变量。
行为:
主要说明类具有哪些功能,称为类的成员方法。
理解:
简单来说,定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,只不过int和double是java语言自带的内置类型,而类是用户自定义了一个新的类型。
1. 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员.
2. 类是一种自定义的类型,可以用来定义变量.
3. 一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间,存储类成员变量
2.2类和对象的区别
一句话总结:类是对象的
模板
,对象是类的
实例
类通过对象才可以使用,但开发之中应该
先产生类之后再产生对象
。
类不能直接使用,对象可以直接使用。
2.3在Java中的定义和使用
类,使用关键字class完成。
class 类名称 {
属性 (变量) ;
行为 (方法) ;
}
范例:定义一个Person类
class Person { // 类名要 大驼峰
String name ; //姓名
int age ; //年龄
public void print() { //方法
System.out.println("姓名:" + name + ",年龄:" + age) ;
}
}
类定义完成之后,依旧无法直接使用。如果要使用,必须创建对象。
通过类创建对象的过程,称为类的实例化
,在java中采用new关键字,配合类名来实例化对象。
类是引用数据类型,实例化对象有两种方式:(在人这个类中定义女人这个对象)
(1)方式一:声明并实例化对象(一步)
//类名称 对象名称 = new 类名称 () ;
Person women = new Person();
(2)方式二:先声明对象,然后实例化对象(两步)
//类名称 对象名称 = null ;
//对象名称 = new 类名称 () ;
Person women = null;
women = new Person();
引用数据类型(类)与基本数据类型(int)最大的不同在于:引用数据类型需要内存的分配和使用。所以,
关键字new的主要功能就是
分配内存空间
,也就是说,只要使用引用数据类型,就要使用关键字new来分配内存空间。任何情况下,只要看见关键字new,都表示要分配新的堆内存空间,一旦堆内存空间分配了,里面就会有类中定义的属性,并且属性内容都是其对应数据类型的默认值。
当一个实例化对象产生之后,可以按照如下的方式进行类的操作:
(一)对象.属性:表示调用类之中的属性;
women.name = "马冬梅" ;//操作属性内容
(二)对象.方法():表示调用类之中的方法。
women.print() ;//调用类中的print()方法
范例:使用对象操作类
class Person { // 类名要 大驼峰
String name ; //姓名
int age ; //年龄
public void print() { //方法
System.out.println("姓名:" + name + ",年龄:" + age) ;
}
}
public class Test{
public static void main(String args[]) {
Person women = new Person() ;// 声明并实例化对象
women.name = "马冬梅" ;//操作属性内容
women.age = 30 ;//操作属性内容
women.print() ;//调用类中的print()方法
}
}
运行结果: 姓名:马冬梅,年龄:30
2.4注意事项
- 一般一个文件当中只定义一个类
- public修饰的类必须要和文件名相同
- main方法所在的类一般要使用public修饰 (注意:Eclipse默认会在public修饰的类中找main方法)
- 不要轻易去修改public修饰的类的名称。
3对象引用传递精髓
引用传递的精髓:
1、同一块堆内存空间,可以同时被多个栈内存所指向
2、不同的栈可以修改同一块堆内存的内容。
4内存垃圾
内存垃圾:指的是在程序开发之中没有任何对象所指向的一块堆内存空间,这块空间就成为垃圾,所有的垃圾将等待
GC(垃圾收集器)不定期自动进行回收与空间的释放。