java具体类
(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空关键字、用于类类型、表示任何对象都不引用。