文章目录
一、概念
1.面向过程和面向对象的区别
---面向过程:是一种执行者思维,事物比较简单
---面向对象:是一种设计者思维,事物比较复杂
---面向对象和面向过程二者相辅相成,并不是对立的。
2.类和对象的概念
---类:一种抽象的概念,客观不存在的,例如:各种摸具,月饼模具
---对象:一切客观存在的事物,比如从模具里出来的,月饼
二、定义
1.定义类和创建对象
//定义类,public class 类名{...}
public class Person{
String name;
public void run(){
System.out.println(name+"跑!");
}
}
//创建对象
Person person = new Person();
//操作对象中的属性
person.name = "张三";
//操作对象中的方法
person.run();
内存图:
默认值表:
2.局部对象和成员变量
|---------------------|---------成员变量----------|------------局部变量--------------|
|–代码中的位置–|-----类中定义的变量-----|----方法或代码块中的变量—|
|–内存中的位置–|------------堆内存----------|--------------栈内存--------------|
|–是否有默认值–|---------有默认值----------|------------无默认值-------------|
|-----作用范围-----|------当前类的方法------|-----当前方法或代码块中-----|
|-----生存时间-----|–对象创建开始到结束–|--方法/代码块执行开始到结束-|
三、构造方法及其重载
//声明格式:
// 1.方法名必须和类名一致
// 2.通过new调用
// 3.方法有返回值(肯定是本类),但是不能定义,不能使用return
// 4可以重载
[修饰符] 类名(形参列表){
//n条语句
}
四、方法调用
1.基本数据类型和引用数据类型的方法
//基本数据类型
public class TestA {
public static void main(String[] args) {
int num=100;
change(num); //num值未发生改变,基本数据类型是值传递
System.out.println(num);
}
public static void change(int n){
n=10;
}
}
//引用数据类型
public class TestB {
public static void main(String[] args) {
int[] num = {100,200};
change(num); //num[0]值变为200,引用数据类型是引用地址传递,本质上也是值传递
System.out.println(num);
}
public static void change(int[] n){
n[0]=200;
}
}
2.this关键字
---构造方法中:this表示当前对象
---this用法:
--- 1.调用当前类的成员变量,如果成员变量和局部变量重名,必须写区分
--- 2.调用成员方法
--- 3.调用构造方法,只能用在构造方法中,必须位于第一句
--- 4.rhis不能用在static方法中