对象:具有特征和功能的实例。
类:是对对象的抽象,是人们脑海中的概念,是具有共同特征或相同行为的对象的集合,利用类可以创建对象;
创建类:[修饰符] class 类名{ 创建对象:类名 对象名 = new 类名();
属性:类似于变量的命名,[修饰符] 数据类型 属性名 类比:Scanner input = new Scanner(System.in);
方法:[修饰符] 返回值类型 方法名(形参列表){ 访问属性并赋值:对象名.属性名 = 值;
方法体; 访问方法(非static): 对象名.方法名();
} 访问静态方法:类名/对象名.方法名();
}
成员变量和局部变量的区别:
1.作用域不同:成员变量作用于当前整个类体;局部变量只作用于当前方法。
2.声明之后是否具有初始值:成员变量有,int类型0、String类型null、double类型0.0、boolean类型false;
局部变量没,必须声明赋值之后才能使用。
3.在内存的位置不同:局部变量存放在栈内存中,方法调用完毕之后会自动释放内存;new出来的存放在堆内存,需要JVM的垃圾回收机制来回收(gc);方法区存放的是类的信息,static变量,字符串常量等;
4.是否能使用修饰符:成员变量可以使用(public ,static,protected,private),而局部变量不可以(只能不写或者final);
构造器constructor(构造函数,构造方法):
作用:为成员变量初始化赋值;
语法:1.方法名必须与类名相同
2.有返回值,但没有返回值类型(void也不可以,void也是一种返回值类型!),可以使用return关键字。
3.如果类中没有构造器,new的时候,jvm会默认提供一个无参构造器。
如果类中有有参构造器,jvm不会再提供无参构造器,也就是无参构造自动失效。想要使用,必须自己创建。
4.无参构造和有参构造,形成了方法的重载(方法名相同,形参列表不同);
this关键字
this代表当前对象本身
1.可以区分成员变量和局部变量;
2.可以调用成员属性和成员方法;
3.可以调用构造器,但必须放在构造器的第一行;
值传递和引用传递
如果传递的参数的数据类型是基本数据类型,出了当前方法,不会保留更改结果;
如果参数是引用数据类型(类/对象,数组,接口),其在方法中更改的结果会被保留。引用传递保存的不是值,而是对象的引用(地址);