面向对象
1.英文OOP:object-oriented Programming
2.本质:以类的方式组织代码,以对象的方式封装数据
3.抽象的思想
4.三大特性:封装、继承、多态
5.对象的使用:实例化new------->对象类型 对象名 = 对象的值
6.静态方法调用非静态方法失败的原因:静态方法生成时的时间片短(和类一起加载的)
非静态方法必须在类实例化之后才存在,已经存在的方法无法调用不存在的方法
7.方法调用中的值传递和引用传递的区别:
package oop;
public class Demo1 {
//值传递
public static void main(String[] args) {
int a = 1;
int b = 1;
System.out.println(a);// 1
b = change(a);//有返回值 且 将a的值进行了变换
System.out.println(b);// 10
//值传递
change1(a);
System.out.println(a); // 1
}
public static int change(int a){
a = 10;
return a;
}
public static void change1(int a){
a = 11;
}
}
package oop;
public class Demo2 {
//引用传递
public static void main(String[] args) {
//person是一个对象 这是一个具体的人 可以改变属性
Person person = new Person();
System.out.println(person.name);//null
Demo2.change(person);
System.out.println(person.name);//158H
}
public static void change(Person person){
person.name = "158H";
}
}
class Person{
String name;//属性
}
栈里存的是对象的引用地址,而不是对象数据,对象数据在堆里