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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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

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

  35. 代码块:
  36. 就是由{}括起来的代码。

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马