1、构造方法(掌握)

1、构造方法的特点(掌握)
     A、方法名必须和类名保持一致
     B、没有返回值类型并且没有具体的返回值
 
2、构造方法的作用(掌握)
      给对象的属性初始化
 
3、注意事项(理解)
     A、如果没有明确给出构造方法,那么系统会默认给出一个无参构造方法
     B、只要明确给出构造方法,系统将不在提供无参构造(以后必须手动给出无参构造,因为可以避免很多错误发生
     C、构造方法的重载体现在参数列表不同,构造方法与其他方法没有关系
 
4、给私有的成员变量赋值的方式(掌握)
     A、通过set方法,推荐使用
     B、通过构造方法
     C、在定义成员变量的时候手动赋值(private String name = “yongliang”;)
     D、通过反射中的Field类的对象给对象的属性赋值(以后学)
 
5、一个类中构造方法应该定义几个?
     这个没有具体的规定,自己想写几个就写几个,看需求。可以一个都不写,系统会提供一个默认的,我一般都会定义一个无参构造,和一个有参构造,该有参构造初始化该类中的所有成员变量
 

2、构造方法和setter方法对比(了解)

1、区别
     构造方法是在创建对象的时候给成员变量赋值,并且只能赋值一次
     set方法是在创建完对象以后对成员变量的值进行修改,或者赋值,可以多次
     最终目的:都是给成员变量赋值,只不过实现方式不一样
 
 
 

3、面向对象之标准代码(掌握)

要求:闭着眼睛写出来
定义几个构造方法是不确定,需要具体需求,我们标准代码只需定义一个无参的,和所有参数的即可。需要时在添加
  1. /**
  2. 一个类的代码分布图:
  3.  
  4.     属性 
  5.     构造方法 
  6.     成员方法 
  7.     get方法和set方法
  8. */
  9. publicclassStudent{
  10. /** 姓名 */
  11. privateString name;
  12. /** 年龄 */
  13. privateint age;
  14. publicStudent(){
  15. }
  16. publicStudent(String name,int age){
  17. super();
  18. this.name = name;
  19. this.age = age;
  20. }
  21. /**
  22. * 获取姓名
  23. *
  24. * @return name 姓名
  25. */
  26. publicString getName(){
  27. return name;
  28. }
  29. /**
  30. * 设置姓名
  31. *
  32. * @param name
  33. * 姓名
  34. */
  35. publicvoid setName(String name){
  36. this.name = name;
  37. }
  38. /**
  39. * 获取年龄
  40. *
  41. * @return age 年龄
  42. */
  43. publicint getAge(){
  44. return age;
  45. }
  46. /**
  47. * 设置年龄
  48. *
  49. * @param age
  50. * 年龄
  51. */
  52. publicvoid setAge(int age){
  53. this.age = age;
  54. }
  55. }
 
测试类
  1. publicclassTest{
  2. publicstaticvoid main(String[] args){
  3. //通过无参构造创建对象,并给成员变量赋值
  4. Student zs =newStudent();
  5. zs.setName("张三");
  6. zs.setAge(13);
  7. //通过有参构造创建对象,并给成员变量赋值
  8. Student ls =newStudent("李四",14);
  9. //调用对象的方法
  10. System.out.println(zs.getName()+"----"+zs.getAge());
  11. System.out.println(ls.getName()+"----"+ls.getAge());
  12. }
  13. }
 

4、static关键字概述

1、概述
     1、static 可以修饰成员变量和成员方法
     2、被static修饰的成员有一个最大的特点,就是可以被该类下所有的对象共享
 
2、什么时候用
     多个对象共享某一数据的时候,我们就把这个数据用static修饰
 
3、特点(掌握)
     1、被static修饰的内容随着类的加载而加载,优先于对象存在
     2、可以直接通过类名调用
     3、被该类下所有对象共享
 
4、注意事项
     1、在静态方法中是没有this关键字,因为静态是随着类的加载而加载。而this是对象创建才存在的
     2、静态方法只能访问静态成员变量和静态成员方法 一句话 静态只能访问静态
     3、静态内容可以通过对象调用,也可以通过类名调用。推荐使用类名调用

5、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)

 
 
 
 

1、谈谈构造方法
    从构造方法的特点和作用两方面说即可

2、谈谈默认初始化,显示初始化,构造方法初始化的顺序


3、谈谈给私有的成员变量赋值的方式


5、谈谈你对static的理解
    从特点和注意事项两方面说即可

6、今天的标准代码必须敲熟

 
 
 
 

Day07_面向对象第二天的更多相关文章

  1. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  2. 面向对象第二个特征-继承(Inheritance)

    面向对象第二个特征-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java中的继承概述 1>.继承概述 多个类种存在相同属性和行为时,讲这 ...

  3. Python进阶---面向对象第二弹

    python类的继承原理 一.类的继承顺序 class A(object): def test(self): print('from A') passclass B(A): # def test(se ...

  4. [Python3] 022 面向对象 第二弹

    目录 6. 面向对象的三大特性 6.1 封装 6.1.1 私有 private 6.1.2 受保护 protected 6.1.3 公开 public 6.2 继承 6.2.1 继承的概念与作用 6. ...

  5. day 22 面向对象的基础

    面向对象: 1.简述编写和执行类中的方法的流程 class Foo: #类的编写 def func(): print("我爱你") obj = Foo() #类的调用和执行 obj ...

  6. [Python3] 023 面向对象 第三弹

    目录 7. 类相关函数 8. 类的成员描述符(属性) 9. 类的内置属性 10. 类的常用魔术方法 10.1 操作类 10.2 描述符 10.3 属性操作 10.4 运算分类相关魔术方法 接上一篇 [ ...

  7. Python笔记总结week8

    面向对象第二节 要点: 1. 封装,对象中嵌套对象 2. pickle,load,切记,一定要先导入相关的类 回顾上一节: 面向对象三大特性: 封装.继承.多态(多种类型.多种形态) 关于多态,任意参 ...

  8. java基础学习周计划之2--面向对象

    JAVA面向对象第一天一. 知识点:1. 类和对象二. 关键问题(理论):1. 简述什么是类.什么是对象2. 简述基本类型变量与引用类型变量赋值时的差别3. 简述null的含义三. 关键代码(操作): ...

  9. 什么是OOP

    面向对象是相对于面向过程而言的.面向过程语言是一种基于功能分析的.以算法为中心的程序设计方法:而面向对象是一种基于结构分析的.以数据为中心的程序设计思想.早在面向过程语言时代,有一句话说:程序=算法+ ...

随机推荐

  1. JAVA EE企业级开发四步走完全攻略 [转]

    http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...

  2. FZU 2216 The Longest Straight 模拟

    题目链接:The Longest Straight 就是一个模拟就是这样,T_T然而当时恶心的敲了好久,敲完就WA了,竟然有这么简单的方法,真是感动哭了.......xintengziji...zhi ...

  3. POJ 3687 逆序拓扑

    额.题目大意:有N个球.编号和重量都是唯一不重复的.然后.给你m个pair a和b,表示编号为a的点一定比编号为b的点轻.然后捏.输出每个点对应的重量.关键是要求.如果有多种可能性的话,输出让序号小的 ...

  4. 开始→运行(cmd)命令大全

    gpedit.msc-----组策略 sndrec32-------录音机 Nslookup-------IP地址侦测器 explorer-------打开资源管理器 logoff---------注 ...

  5. 二模 (13)day1

    第一题: 题目大意: N个发射站排成一排,求每个发射站左右第一个比它高的发射站. N<=1000000 解题过程: 1.前几天做poj的时候刚好在discuss里看到有一个神奇的东东叫单调栈,正 ...

  6. C#获取指定日期为一年中的第几周

    /// <summary> /// 获取指定日期,在为一年中为第几周 /// </summary> /// <param name="dt">指 ...

  7. php unicode

    在很多场合能看到unicode编码过的文字,如“\u6d3b\u52a8\u63a5\u53e3”,虽然程序会认识,但人眼无法阅读,很不方便,网络上很多人写了很多的转换函数,但是一个比一个臃肿,终于发 ...

  8. 【python】dict。字典

    特点:以空间换取时间,使用HASH算法通过key算出了value的内存地址,建立索引,拿到key后查找速度快,但内存浪费多 因为是用key值算的内存地址,所以key为不可变变量 (set,和dict类 ...

  9. JS 数组去重!!!

    var arr = [1,2,3,1,1,1,3,5,3,6,2]; var newArr=[]; for(var i = 0; i < arr.length-1; i++){ var onOf ...

  10. [Python陷阱]os.system调用shell脚本获取返回值

    当前有shell个脚本/tmp/test.sh,内容如下: #!/bin/bashexit 11 使用Python的os.system调用,获取返回值是: >>> ret=os.sy ...