(01)类:被class修饰叫做类。
public class Person //读作:类Person或Person类
理解:用【类】来表示现实生活中的【模板】或【图纸】。
理解:用【对象】来表示现实生活中【实体】或【实例】。
(02)成员变量:在类中定义的变量叫做类的成员变量。
理解:用来表示类的【属性】或【状态】。比如“人”具有的属性:年龄。姓名,性别等
变量通常称为【静态成员】
public class Person{//成员变量写在类的语句块儿里
String name;//表示一个人的名字(名字是一个人具有的属性)
int age;//表示一个人的年龄(年龄是一个人具有的属性)
}
(03)成员方法:在类中定义的方法叫做类的成员方法。
理解:用来表示类的【行为】或【功能】。比如人的行为:跑步、吃饭、喝水等
理解:一个方法就代表一个功能,把功能写在方法里面
方法通常称为【动态成员】
public class Person {
public void run() {
System.out.println("跑步");//跑步是人的行为
}
public void driver() {
System.out.println("开车");//开车是人的行为
}
}
(04) 构造方法 :方法名和类同名、没有返回值也没有void关键字。
(通常写在成员变量下面)
理解:作用是根据类来创建对象。有参和无参的构造方法。
public class Person {
public Person(){
}
public Person(String name,int age){
}
}
(05)编写一个标准具体类的步骤
第一步:创建class类
第二步:编写成员变量
第三步:生成构造方法(无参和有参)
第四步:生成getter方法和setter方法
第五步:生成 toString 方法
(06)创建对象的语法句式
类名 变量 = new 构造方法;
(1)创建一个对象:张三、30
Member m1 = new Member();//针对的是无参的构造方法
m1.setName("张三");
m1.setAge(30);
System.out.println(m1);
//无参的构造方法
public Member() {
super();
}
(2)创建一个对象:李四、40
Member m2 = new Member("李四", 40);//针对的是有参的构造方法
System.out.println(m2);
//有参的构造方法
public Member(String name, int age) {
super();
this.name = name;
this.age = age;
}
(07)成员变量和局部变量的区别
成员变量:在类中定义的。 作用域 在类内部。
局部变量 :在方法中定义的。作用域在方法内部。
public class B {
// 成员变量
int a = 3;
public void m() {
// 局部变量
int b = 5;
System.out.println(a);
System.out.println(b);
}
(08)基本数据类型和类类型的区别
Java语言有2种数据类型:基本数据类型和类类型。
基本数据类型:变量中存储的是真实的值。
public static void m1(int b) {
b = 3;
}
public static void main(String[] args) {
int a = 2;
m1(a);
System.out.println(a);
}
//这段代码最终打印的结果是2,因为基本数据类型的变量中存储的是真实的值,在主方法的测试中,将2赋值给变量a,a存储的是真实的值2
类类型:变量中存储的是对象在内存中地址的值。(遥控器)
public static void m2(int[] d) {
// 301
d[0] = 4;
}
public static void main(String[] args) {
int[] c = {1,2,3};// 301
m2(c);
System.out.println(c[0]);
}
//这段代码最终打印出来的结果是4,因为类类型:变量中存储的是对象在内存中地址的值,在m2方法中,数组中下标是0的位置的值是4,所以在主方法测试中,传入参数数组c,最后打印出来的下标是0的值依旧是地址的值4
(09)值传递
基本数据类型传递的是【真实的值】。
类类型传递的是【地址的值】。
(10)类类型的变量和对象之间的关系
一个变量可以引用零个或一个对象。
// 一个变量可以引用零个或一个对象(只能存一个对象的地址)
Member m = new Member("张三", 30);//张三这个对象的地址传给m
m = new Member("李四", 30);//李四这个对象的地址传给m
m = new Member("王五", 30);//王五这个对象的地址传给m
System.out.println(m);//最后打印出来的是王五
m = null;//谁也不引用
一个对象可以被零个或多个变量引用。
// 一个对象可以被零个或多个变量引用
Member m1 = new Member("张三", 30);
Member m2 = m1;
Member m3 = m1;
System.out.println(m1);
System.out.println(m2);
System.out.println(m3);
//此时打印出来的m1,m2,m3都是张三,也就是说张三这个对象同时被m1,m2,m3三个变量引用
//三个变量引用了同一个对象,此时对其中一个进行更改,那么三个变量的值也同时更改
Member m1 = new Member("张三", 30);
Member m2 = m1;
Member m3 = m1;
m3.setAge(45);//通过改变变量m3的年龄
System.out.println(m1);
System.out.println(m2);
System.out.println(m3);
//此时打印出来的m1,m2,m3年龄都是40
m1 = null;
null空关键字、用于类类型、表示任何对象都不引用。