黑马程序员java培训就业班笔记day07总结

上传人:宝路 文档编号:23923961 上传时间:2017-12-04 格式:DOC 页数:8 大小:59.51KB
返回 下载 相关 举报
黑马程序员java培训就业班笔记day07总结_第1页
第1页 / 共8页
黑马程序员java培训就业班笔记day07总结_第2页
第2页 / 共8页
黑马程序员java培训就业班笔记day07总结_第3页
第3页 / 共8页
黑马程序员java培训就业班笔记day07总结_第4页
第4页 / 共8页
黑马程序员java培训就业班笔记day07总结_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《黑马程序员java培训就业班笔记day07总结》由会员分享,可在线阅读,更多相关《黑马程序员java培训就业班笔记day07总结(8页珍藏版)》请在金锄头文库上搜索。

1、Day07 总结:1、构造函数:特点:1、函数名和类名相同2、不用定义返回值类型3、不可以写 return 语句作用:创建一个对象都会执行这个构造函数,所以构造函数的作用给对象进行初始化。每一个对象的创建,都必须要通过对应的构造函数进行初始化,对象不初始化是不能用的。注意:1、之前写对象的时候也没有写构造函数?因为该类当中的在没有定义类的情况下有一个默认的空参数的构造函数,方便与该类的对象进行初始化。2、如果在类中定义了具体的构造函数,那么默认的空参数构造函数就没有了。2、构造函数和一般函数的区别:1、格式:两种函数的格式不同:构造函数:修饰符 类名(参数列表)一般函数:修饰符 返回值类型 自

2、定义函数名(参数列表)2、运行方式构造函数:构造函数是在对象已经建立就执行对应的构造函数,给对象进行初始化。一般函数:对象创建后,再调用一般函数。3、作用不同构造函数:是对对应对象进行初始化的,叫做对象已建立时要做什么事情?一般函数:给对象提供更多的功能,方便与对象的调用。4、调用次数构造函数:对象创建时,就调用一次,因为初始化动作最先执行,只执行一次一般函数:对象创建后,可以被多次调用。3、什么时候定义构造函数呢?分析具体事务时,该事务已经存在,就应该具备一些属性值,或者行为,那么将这些内容都定义在构造函数中。一个类中构造函数可以有多个,而且是以重载的形式存在。实现代码:Class CarD

3、emoCar c=new Car();C.show();Car c1= new Car();C.show();Class CarPrivate int num;/为什么要定义为私有?因为汽车禅城都要有 4 个轮胎,所以把这些属性定义到构造 函数中,在对象进行初始化的时候就已经有了 4 个轮胎Car()Num=4;/当有五个的轮胎的车生产时。Car(int a)Num=a;Public void setNum()/为什么要写一般函数?当 num 进行了私有化时就相当于 把它进行了封装,这只是提供了一种访问它的方式。Return num;Public int getNum()Return num;

4、Public void show()Sop(num);总结:当汽车生产的时候都有有四个轮胎,我们可以理解为这个属性为汽车这个对象已经存在的事物,那么我们就可以定在在构造函数中,但是当我们需求发现改变的时候,比如说当我们要生产有五个轮胎的汽车的时候,这时候就应该有这样的功能来实现它,那么就要定义构造函数的重载形式来表示轮胎是可以设置。5、构造函数的内存分析:实现代码:Class personPrivate String name=人;/显示初始化在默认初始化之后。正确是这样的Private int age=90;Person()/默认初始化始终是第一位。Name=baby;Age=1;Perso

5、n(String n)Name=n;Person(String n ,int a)Name=n;Age=a;Public String setName(String n);Name=n;Public String getName()Return name;Public void setAge()Age=a;Public int getAge()Return age;Public void speeak()Sop(name+age);Class PersonDemoPerson p=new Person(zhangsan);内存分析如下图:6、小细节:a) 构造函数中是可以写 return 语句

6、的,因为当构造函数中存在判断的时,可以写return,作用就是结束语句。b) 同样构造函数是可以添加 void 的,这样的话就不是构造函数了,就成为了一般函数了。Eg:实现代码:Void Person()Person(int a)If(a130)Sop();Return;/作用就是结束该判断语句Sop():/当写了 return 语句时,这句话是不能执行的。Age=a;7、构造代码块:构造代码块,定义在类中,是一个独立的代码块,作用给所有对象进行初始化,在构造函数之前执行。与局部代码块的区别:局部代码块定义在函数中,用来定义变量的生命周期。实现代码:Eg:Cry();/这就是一个构造代码块,因

7、为人都具有哭的这个行为,不管是有姓名没姓名还是大人还是小孩都有这个行为,那么就可以单独的定义在代码块中,用来对他们这个公共属性进行初始化。8、this 关键字:当成员变量和局部变量重名的时候,为了区分这种情况我们可以使用一个关键字来完成,就是 this它代表的是什么呢?This 关键字代表的就是一个对象的引用。代表哪个对象? 代表当前对象,它自己不是对象,只是一个引用。只要是成员,必须被对象所调用。总的一句话:定义功能时,如果功能中用到了本类对象,这时就使用 this 这个关键字表示这个对象。实现代码:Eg:Class PersonPrivate String name;Private int

8、 age;Person()Name=name;Person(String name,int age)This();/像这样的就是构造函数之间的调用,调用语句必须定义在第一行,这是规则。This,name=name;/左右两边都是局部变量,并没有把 name 赋值给成员中的name 和 age,加 this 之后指的就是成员变量 Name;This.age=age;Public void speak()Int age=300;Sop(this.name+this.age);Public void method()This.speak();Class personDemoPublic static

9、 void main(Stirng args)Person p1=new person(lisi,30);P1.speak();s总结:构造函数之间的调用,构造函数中调用其他构造函数的 this 语句必须定义在构造函数的第一行,因为构造函数是用来初始化的。初始化的动作必须先执行。9、static 静态关键字1、它是一个修饰符,只能修饰成员(成员变量和成员函数)2、被 static 修饰的成员变量的数据,可以被所有的对象们共享。3、被静态修饰的成员多了一种调用方式,就是除了被对象调用以外,还可以被类名直接调用,类名.静态成员。4、静态之所可以被类名调用,那是因为静态成员是随着类的加载而加载进内存

10、的。非静态的特点随着对象的加载而加载。5、静态优先于对象加载进内存,所以不能访问对象的内容,但是对象可以访问它的内容。6、被静态修饰的成员为共有数据,对象里面自身村存储的是特有数据。Eg:饮水机是共有的,但是喝水的杯子是特有的。怎么理解共性?只要在描述事物的时候发现这特点是大家都有的。10、静态的使用注意事项:1、静态成员函数只能访问类中的静态成员,不能访问非静态的。非静态方法可以访问静态方法。2、静态方法中不可能定义 this spuer 关键字,因为 This 代表的是对象,但是静态加载的时候都没有对象存在。3、主函数是静态的。实现代码:Eg:class MainDemoint x=4;p

11、ublic static void main(String args)/String args=new String0;/public : 因为主函数是被 JVM 调用、权限必须足够大。/static :/void :没有返回值。不用返回值给 JVM;/main:比较特殊,jVM 只能识别它,/(String args):参数列表,数组类型。argumentssop(args);/Ljava.lang.String;c17614 输出的数组实体地址。/new MainDemo().show();/创建一个对象即可。public static void main()/是可以存在的,重载。void

12、 show()sop(x);编译失败:被修饰后的成员具备以下特点:class PersonString name;static String country=CN;/每个对象都有国籍,都相同我们可以单独拿出来。static void show()/如果被静态修饰。name 是不能被访问的。/函数被静态修饰只能访问被静态修饰的成员,非静态成员不能访问。/为什么?Sop(country+name);/country 之前省略了 Person 类,Person.countryclass StaticDemopublic static void main(String args)Person p=ne

13、w Person();p.name=zhangsan;p.show();Person p=new Person();p.name=lisi;p.show();System.out.println(Person.country);被类名直接调用。Person.show();/直接调用 show 方法,说明自始至终在堆内存中没有 name 这个成员。/当 show 方法进行输出语句的时候访问 conutry 和 name,但是 name/是没有的,访问不到。11、成员变量和静态变量的区别:1、成员变量只能被对象所调用,静态成员变量除了可以被对象调用还可以被类名调用2、成员变量也称为对象变量或者实列

14、变量。因为成员变量是被对象使用的变量。静态变量也称为类变量。3、成员变量是随着对象的出现而出现,随着对象的回收而消失。静态变量随着类的加载而加载,随着类的消失而消失。一个代码中一个静态都不写是可以的,不写静态是因为静态的生命周期特别长,但是我们要考虑到代码的严谨性是需要写一些静态的。12、什么时候使用静态?成员变量:如果该变量的数据值每个对象都一样。就将其静态修饰,否则就是非静态。成员函数:如果功能中没有访问到对象中的特有数据,那么就需要将该函数定义成静态,因为创建对象调用除了浪费堆内存空间没有意义。实现代码:Class DemoStstic int num=5;String name;Sta

15、tic Strng country=CN;Void show()Sop(this.name);Static void show2()/为什么要静态修饰?/因为这个方法在对象在堆内存创建的时候,被调用到了,但是至于它的执行语句并没有访问到任何对象中的属性,只是执行一个输出语句,如果不加 static,当对象创建的时候再堆内存进行分配空间,默认初始化,以及分配地址值,这系列动作却没有任何指向引用它,它在堆内存中就相当于垃圾。这样做就没有任何意义了,所以我们用 static 来修饰它。Sop(show run);Static void show3()/因为访问到了静态成员变量 num;Sop(num);内存分析:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号