A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张亚昆 中级黑马   /  2015-7-15 00:27  /  1089 人查看  /  26 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是构造方法?感觉好抽象。这个方法有什么用呢

26 个回复

倒序浏览
构造方法
        (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());
                        }
                }

刘意老师写的直接粘贴给你看
回复 使用道具 举报
2楼很详细
回复 使用道具 举报
2L很详细啊
回复 使用道具 举报
2l把笔记分享给你了。。。
回复 使用道具 举报
这块学得好难啊,不好理解。
回复 使用道具 举报
看2L的。把。
回复 使用道具 举报
蔡锐 发表于 2015-7-15 08:58
构造方法
        (1)作用:用于对对象的数据进行初始化
        (2)格式:

好东西,谢谢
回复 使用道具 举报
朝着梦想使劲冲 发表于 2015-7-15 12:30
这块学得好难啊,不好理解。

同感同感
回复 使用道具 举报
朝着梦想使劲冲 发表于 2015-7-15 12:30
这块学得好难啊,不好理解。

同感同感
回复 使用道具 举报

你在自学?
回复 使用道具 举报
Java是面向对象,按照现实来说就是有个骨架子(构造方法)。你可以看下C++的书籍就明白了,为什么要有构造函数。
回复 使用道具 举报
简单的理解下啊,你要实例化一个对象必须要做点什么吧 这时候   就是 new 构造函数  就新建了一个对象。这个构造函数就在new 操作时初始化了该类对象的一系列数据。(说的不全)
回复 使用道具 举报
方法 本身就不好学,,挺绕的。
回复 使用道具 举报
wh121 中级黑马 2015-7-17 15:34:01
15#
回复 使用道具 举报
对对象初始化的
回复 使用道具 举报
对对象数据的初始化
回复 使用道具 举报

算是,在黑马基础班
回复 使用道具 举报

  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>
复制代码

回复 使用道具 举报
还好理解吧,看多几遍视频就懂了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马