黑马程序员技术交流社区

标题: 构造方法 [打印本页]

作者: 张亚昆    时间: 2015-7-15 00:27
标题: 构造方法
什么是构造方法?感觉好抽象。这个方法有什么用呢

作者: 蔡锐    时间: 2015-7-15 08:58
构造方法
        (1)作用:用于对对象的数据进行初始化
        (2)格式:
                A:方法名和类名相同
                B:没有返回值类型,连void都不能有
                C:没有返回值
               
                思考题:构造方法中可不可以有return语句呢?
                可以。而是我们写成这个样子就OK了:return;
                其实,在任何的void类型的方法的最后你都可以写上:return;
        (3)构造方法的注意事项
                A:如果我们没写构造方法,系统将提供一个默认的无参构造方法
                B:如果我们给出了构造方法,系统将不再提供默认构造方法
                        如果这个时候,我们要使用无参构造方法,就必须自己给出。
                        推荐:永远手动自己给出无参构造方法。
        (4)给成员变量赋值的方式
                A:setXxx()
                B:带参构造方法
        (5)标准案例
                class Student {
                        private String name;
                        private int age;
                       
                        public Student(){}
                       
                        public Student(String name,int age) {
                                this.name = name;
                                this.age = age;
                        }
                       
                        public String getName() {
                                return name;
                        }
                       
                        public void setName(String name) {
                                this.name = name;
                        }
                       
                        public int getAge() {
                                return age;
                        }
                       
                        public void setAge(int age) {
                                this.age = age;
                        }
                }
               
                测试:
                class StudentDemo {
                        public static void main(String[] args) {
                                //方式1
                                Student s1 = new Student();
                                s1.setName("林青霞");
                                s1.setAge(27);
                                System.out.println(s1.getName()+"---"+s1.getAge());
                               
                                //方式2
                                Student s2 = new Student("刘意",30);
                                System.out.println(s2.getName()+"---"+s2.getAge());
                        }
                }

刘意老师写的直接粘贴给你看
作者: fantianfei    时间: 2015-7-15 09:09
2楼很详细
作者: helloworld79496    时间: 2015-7-15 09:36
2L很详细啊
作者: 路途    时间: 2015-7-15 09:39
2l把笔记分享给你了。。。
作者: 朝着梦想使劲冲    时间: 2015-7-15 12:30
这块学得好难啊,不好理解。
作者: 为了理想而奋斗    时间: 2015-7-15 12:37
看2L的。把。
作者: 张亚昆    时间: 2015-7-16 23:37
蔡锐 发表于 2015-7-15 08:58
构造方法
        (1)作用:用于对对象的数据进行初始化
        (2)格式:

好东西,谢谢
作者: 张亚昆    时间: 2015-7-16 23:38
朝着梦想使劲冲 发表于 2015-7-15 12:30
这块学得好难啊,不好理解。

同感同感
作者: 张亚昆    时间: 2015-7-16 23:39
朝着梦想使劲冲 发表于 2015-7-15 12:30
这块学得好难啊,不好理解。

同感同感
作者: 朝着梦想使劲冲    时间: 2015-7-17 10:37
张亚昆 发表于 2015-7-16 23:39
同感同感

你在自学?
作者: pi408637535    时间: 2015-7-17 12:31
Java是面向对象,按照现实来说就是有个骨架子(构造方法)。你可以看下C++的书籍就明白了,为什么要有构造函数。
作者: 紫夜灵魂    时间: 2015-7-17 13:58
简单的理解下啊,你要实例化一个对象必须要做点什么吧 这时候   就是 new 构造函数  就新建了一个对象。这个构造函数就在new 操作时初始化了该类对象的一系列数据。(说的不全)
作者: gongyanfa123    时间: 2015-7-17 14:36
方法 本身就不好学,,挺绕的。
作者: wh121    时间: 2015-7-17 15:34
http://bbs.itheima.com/thread-212102-1-1.html   你可以看看
作者: decadence90    时间: 2015-7-17 21:17
对对象初始化的
作者: 灰灰    时间: 2015-7-17 22:25
对对象数据的初始化
作者: 张亚昆    时间: 2015-7-18 00:16
朝着梦想使劲冲 发表于 2015-7-17 10:37
你在自学?

算是,在黑马基础班
作者: n361204357    时间: 2015-7-18 09:52

  1. <P> </P>
  2. <P>在基础班的纯纯个人总结,分享给你</P>
  3. <P>/*
  4. 构造函数:
  5. 原因:新创建对象,要利用setXxx来赋值。构造函数,创建对象就可以被虚拟机自动调用,直接赋值。
  6. 格式:
  7. 1,方法名和类名相同;
  8. 2,没有返回类型声明;
  9. 3,不能用return返回一个值;
  10. 第一种格式:
  11. class Person
  12. {}
  13. 第二种格式;
  14. class Person
  15. {
  16. public Person()
  17. }
  18. 作用:用于给对象进行初始化。
  19. 注意事项;
  20. 1,构造代码块优先于构造函数;
  21. 2,构造代码块用于给所有对象进行初始化,构造函数只能给对应对象进行初始化。
  22. 3,构造函数只能使用一次。
  23. 4,如果没有构造函数,系统会默认创建一个无参的,如果自己建立了一个,则系统不会建立。
  24. 注意事项:
  25. A:如果你没有给出构造方法,那么,系统会默认给出一个无参构造方法。
  26. public Person(){}
  27. B:假如你给了,会是什么情况呢?
  28. 只要你给出了构造方法,系统将不再提供无参构造。
  29. 是建立一个有参的构造 那么默认的就会被取消 你使用 Student s =new Student();建立对象时 会报错的!
  30. 推荐做法:请永远手动给出无参构造。
  31. C:构造方法重载
  32. 其实就是构造方法接收不同的参数。

  33. 给成员变量赋值:
  34. A:通过set方法。推荐使用。
  35. B:通过构造方法。
  36. C:定义时手动赋值

  37. 代码块:
  38. 就是由{}括起来的代码。

  39. 分类:
  40. 定义在方法中的代码块,叫局部代码块。作用是:让变量尽可能早的从内存中消失,提高效率。
  41. 定义在方法外的代码块,叫构造代码块。作用是:把所有构造方法中的共同的内容定义在构造代码块中。
  42. */
  43. class Person
  44. {
  45. private int age;
  46. //构造代码块 ,用于给所有对象初始化,因为对象具有共性特征。
  47. {
  48. System.out.println("构造代码块优先执行");
  49. }
  50. public Person() //无参;
  51. {
  52. System.out.println("无参");
  53. }
  54. public Person(int a)
  55. {
  56. age=a;
  57. System.out.println(age);
  58. }
  59. }
  60. class uu1
  61. {
  62. public static void main(String[] args)
  63. {
  64. Person p=new Person(20);
  65. //p.Person(20);//会报错 ,因为构造函数只能用被这个对象用一次
  66. }
  67. }</P>
复制代码


作者: joe520kay    时间: 2015-7-18 09:55
还好理解吧,看多几遍视频就懂了
作者: T-l-H、小生    时间: 2015-7-18 11:18
构造方法,算是比较容易的了
作者: 朝着梦想使劲冲    时间: 2015-7-20 13:13
张亚昆 发表于 2015-7-18 00:16
算是,在黑马基础班

是上海吗?我也想先去基础班学学。
作者: 张亚昆    时间: 2015-7-20 23:30
朝着梦想使劲冲 发表于 2015-7-20 13:13
是上海吗?我也想先去基础班学学。

是的,我报的是0705的班,学习氛围超好
作者: 朝着梦想使劲冲    时间: 2015-7-21 12:13
张亚昆 发表于 2015-7-20 23:30
是的,我报的是0705的班,学习氛围超好

那你们住哪?
作者: 18230343363    时间: 2015-7-21 12:26
构造方法就是定义一个和类名一样的方法,里面写具体的实现。实例化的时候有构造方法先执行构造方法
作者: 18230343363    时间: 2015-7-21 12:27
蔡锐 发表于 2015-7-15 08:58
构造方法
        (1)作用:用于对对象的数据进行初始化
        (2)格式:

你回答的很好呀,向你学习




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2