面向对象第2天:
精华笔记:
-
构造方法:构造函数、构造器、构建器---------------------------复用给成员变量赋初值的代码
- 作用:给成员变量赋初始值
- 语法:与类同名,没有返回值类型(连void都没有)
- 调用:在创建(new)对象时被自动调用
- 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
- 构造方法可以重载
-
this:指代当前对象,哪个对象调用方法它指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
this作用: 可以区别成员变量和局部变量.想要调用成员变量就用this;
this的用法:
-
this.成员变量名----------------------访问成员变量
注意:当成员变量与局部变量同名时,若想访问成员变量,则this不能省略
-
this.方法名()---------------------------调用方法(一般不这么写)
-
this()-------------------------------------调用构造方法(一般很少用)
-
-
null:表示空,没有指向任何对象。
- 若引用的值为null,则该引用不能再进行任何操作了,若操作则发生NullPointerException空指针异常
-
引用类型数组(上):---------记住与基本类型数组的两点区别即可
- 区别1:给引用类型数组元素赋值时,需要new个对象
- 区别2:----------------------下次课讲
笔记:
-
构造方法:构造函数、构造器、构建器---------------------------复用给成员变量赋初值的代码
-
作用:给成员变量赋初始值
-
语法:与类同名,没有返回值类型(连void都没有)
-
调用:在创建(new)对象时被自动调用
-
若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
-
构造方法可以重载
public class Student { String name; int age; String address; //构造方法:给成员变量赋初值 Student(String name,int age,String address){ this.name = name; //zs.name="zhangsan" this.age = age; //zs.age=25 this.address = address; //zs.address="河北廊坊" } void study(){ System.out.println(name+"在学习..."); } void sayHi(){ // zs.name zs.age zs.address System.out.println("大家好,我叫"+this.name+",今年"+this.age+"岁了,家住"+this.address); } } public class ConsDemo { public static void main(String[] args) { //Student zs = new Student(); //编译错误,Student类中没有无参构造方法 Student zs = new Student("zhangsan",25,"LF"); zs.sayHi(); Student ls = new Student("lisi",24,"JMS"); ls.sayHi(); } }
-
-
this:指代当前对象,哪个对象调用方法它指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
this的用法:
-
this.成员变量名----------------------访问成员变量
注意:当成员变量与局部变量同名时,若想访问成员变量,则this不能省略
-
this.方法名()---------------------------调用方法(一般不这么写)
-
this()-------------------------------------调用构造方法(一般很少用)
-
-
null:表示空,没有指向任何对象。
- 若引用的值为null,则该引用不能再进行任何操作了,若操作则发生NullPointerException空指针异常
-
引用类型数组(上):---------记住与基本类型数组的两点区别即可
-
区别1:给引用类型数组元素赋值时,需要new个对象
ObserveSubmarine[] oses = new ObserveSubmarine[3]; oses[0] = new ObserveSubmarine(); oses[1] = new ObserveSubmarine(); oses[2] = new ObserveSubmarine(); -
区别2:----------------------下次课讲
-
补充:
-
java规定:成员变量和局部变量是可以同名的,使用的时候默认采取就近原则
-
内存管理:由JVM来管理的
- 堆:new出来的对象(包括成员变量、数组元素)
- 栈:局部变量(包括方法的参数)
- 方法区:--------下周二讲
-
基本类型变量中存储的就是具体的数,引用类型变量中存储的是对应对象的地址
-
成员变量:写在类中、方法外,在整个类中好使
局部变量:写在方法中,当前方法中使用
-
明日单词:
1)reference:引用 2)extends:继承 3)super:超级 4)Sea:海洋 5)object:对象