万物皆对象。
面向对象指以属性和行为的观点去分析现实生活中的事物。
面向对象编程时指先以面向对象的思想进行分析,然后使用面向对象的编程语言进行表达式的过程。
面向对象编程时软件产业发展的需求。
三大特性 :封装,继承,多态
二·类和对象的概念
对象时指显示生活中存在的客观实体,在Java语言中对象体现为内存空间的一块存储区域。
类简单来就是分类,是指对具有相同特征和行为的多个对象共性的抽象描述,在java语言中体现为一种引用的数据类型,里面包含了描述特征/属性的成员变量以及描述行为的方法。
类是用于构建对象的模板,对象的数据结构由它定义的类来决定。
三·类的定义
class 类名{
数据类型 成员变量名 = 初始值; //成员变量由多个单词组成时,通常要求从第二个单词起每个单词的首字母大写。
}
注意:当类名由多个单词组成时,要求每个单词首字母都要大写。
四·对象的创建
new 类名();
注意:a.当一个类定义完毕后,可以使用new关键字来创建该类的对象,这个过程叫做类的实例化。
b.创建对象的本质就是在内存空间的堆区申请一块存储区域,用于存放该对象独有的特征信息。
五·引用的定义
使用引用数据类型定义的变量叫做引用型变量,简称为“引用”。
引用变量主要用于记录对象在堆区中的内存地址信息,便于下次访问。
六·成员方法的定义
当成员方法名由多个单词组成时,要求从第二个单词的首字母大写
七·返回值类型详解
指的是从方法体内返回到方法体外的数据内容。
返回值类型主要是指返回值的数据类型,可以实基本类型,也可以是引用数据类型。
return关键字,可以返回具体的数据内容并结束当前方法。
当该方法不需要返回任何数据类型时,则返回值类型写void即可。
八·形参列表的详解
用于将方法体外的数据内容带到方法体的内部。
形式参数列表指读个形式参数组成的列表。
九·方法体详解
成员方法主要用于编写描述该方法功能的模块。
成员方法可以实现代码重用,简化代码。
十·方法的调用
引用变量名.成员方法名(实参列表);
实际参数列表主要用于对形式参数列表进行初始化操作,因此参数的个数,类型以及顺序都要完全一致。
实际参数可以穿值变量,变量,表达式,方法的调用等。
十一·可变长参数
返回值类型 方法名(参数的类型... 参数名)0~n个
一个方法的形参列表最多只能声明一个可变长的形参,并且需要放到参数列表的末尾。
十二·传参注意事项
基本数据类型的变量作为方法参数传递时,形参变量数值的改变通常不会影响到实参变量的参数值,因为两个变量各有各自独立的内存空间。
引用数据类型变量作为方法的参数传递时,形参变量指向内容的改变会影响到实参变量指向内容的数值,因为两个变量指向同一块内存空间。(引用类型传参是传递的地址)
当引用类型的变量作为方法的参数传递时,若形参变量改变指向后再改变指定的内容,则通常不会影响到实参变量指向内容的改变,因为两个变量指向不同的内存空间。
//代码
public class ArgumentTest {
//自定义成员方法打印参数传入的整数数据
public void show(int ia){
ia = 200;
System.out.println(ia);
}
//自定以成员方法打印参数传入的数组内容
public void show2(int[] arr1){
arr1[0] = 100;
System.out.println("show 中"+arr1[0]);
}
public void show3(int[] arr1){
arr1 = new int[2];
arr1[0] = 100; //此时这里改变不会影响到main方法的值
System.out.println("show 中"+arr1[0]);
}
public static void main(String[] args) {
//1.声明ArgumentTset类型的引用指向该对象的类型
ArgumentTest at = new ArgumentTest();
//2.使用引用变量调用show方法进行测试
int ib =10;
at.show(ib);
System.out.println("main 方中ib="+ib);
//调用show2方法测试
int[] arr = new int[]{10,20};
at.show2(arr);
System.out.println("main中arr="+arr[0]);
}
}
内存结构之栈区:
栈用于存放运行过程当中所有的局部变量。一个运行的java程序从开始到结束会有多次方法的调用。
JVM会为每一个方法的调用在栈区中分配一个相对应的空间,这个空间称为栈帧,一个栈帧对应一个正在调用中的方法,栈帧中存储了该方法的参数,局部变量等数据。
当某一方法调用完后,其对应的栈帧将被清楚。
浙公网安备 33010602011771号