JAVA基础: 面对对象、面对过程的基本理解-类和对象的基本概念
面向对象IDEA快捷键=ctrl+Y还原Ctrl+F 查找元素Ctrl+R替换元素一. 面向过程编程代码都是放在一个main方法里面写,都是从上到下执行。二. 面向对象编程 OOP万物皆对象 Object通过对象去调用属性 或 方法。三.面向过程和面对对象的了解面向对象思维方式是一种更符合人们思考习惯的思想面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多...
·
面向对象
IDEA快捷键=ctrl+Y还原
Ctrl+F 查找元素
Ctrl+R替换元素
一. 面向过程编程
代码都是放在一个main方法里面写,都是从上到下执行。
二. 面向对象编程 OOP
万物皆对象 Object
通过对象去调用属性 或 方法。
三.面向过程和面对对象的了解
面向对象思维方式是一种更符合人们思考习惯的思想
面向过程思维方式中更多的体现的是执行者(自己做事情),
面向对象中更多的体现是指挥者(指挥对象(别人)做事情)。
面向对象思维方式将复杂的问题简单化,因为我们不再关注细节,只关注结果
四.类和对象的概念
- 在工具里面新建的class文件就是一个类,类是具有一些属性和方法的统称,类是一个模板
类里面存放的是类的 成员
成员变量 成员属性
成员方法
2.对象是类的具体的实例
3.创建对象语法 - 类和对象的关系?
类是具有属性和方法的统称,对象是类的一个实例。
五、局部变量和成员变量区别
类名 对象名 = new 类名();
区别一:定义的位置不同
定义在类中的方法外的变量是成员变量
定义在方法中或者方法的{}内语句里面的变量是局部变量
区别二:在内存中的位置不同
成员变量存储在堆中s
局部变量存储在栈中
区别三:生命周期不同(皮之不存毛将焉附)
成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失
(成员变量和对象同生共死)
局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失
(局部变量和方法同生共死)
区别四:有没有默认值
成员变量因为在堆内存中,所有默认的初始化值,默认值和数据类型的默认值类似
局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。
六、基本类型和引用类型作为参数传递
基本类型作为参数传递时,其实就是将基本类型变量x空间中的值复制了一份传递给调用的方法
show(),当在show()方法中x接受到了复制的值,再在show()方法中对x变量进行操作,这时只会
影响到show中的x。当show方法执行完成,弹栈后,程序又回到main方法执行,main方法中的x值
还是原来的值。
举例:
/*
- 基本数据类型作为参数传递
- /
public class Test1 {
public static void main(String[] args) {
int x = 4;
show(x);
System.out.println(“x=”+4); // x=4
}
//静态 无返回值 有参方法
public static void show(int x){
x = 5;
}
}
当引用变量作为参数传递时,这时其实是将引用变量空间中的内存地址(引用)复制了一份传递
给了show方法的d引用变量。这时会有两个引用同时指向堆中的同一个对象。当执行show方法中的
d.x=6时,会根据d所持有的引用找到堆中的对象,并将其x属性的值改为6.show方法弹栈。
由于是两个引用指向同一个对象,不管是哪一个引用改变了引用的所指向的对象的中的值,其他
引用再次使用都是改变后的值。
/ - 引用数据类型作为参数传递
- */
public class Test2 {
int x; //成员变量
public static void main(String[] args) {
Test2 t2 = new Test2();
t2.x = 7;
method(t2);
System.out.println(“x的值是:”+t2.x); // 输出 6
}
public static void method(Test2 t){ //类名对象作为参数
t.x = 6; //对象调用属性
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)