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. 在单元测试中指定log4j的配置文件

    在开发过程中,我们会使用到log4j来输出日志,我们希望在单元测试的时候,只看到部分日志信息,或者定义日志输出的级别.   这个时候手工指定log4j的配置文件:   具体做法如下: 定义类如下: i ...

  2. extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办。。。

    extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办...所以要把它格 ...

  3. php像新浪微博一样生成短域名

    <?php function shorturl($url='', $prefix='', $suffix='') { $base32 = array ( 'a', 'b', 'c', 'd', ...

  4. JavaWeb chapter 1 http协议

    1.  静态web和动态web的区别: 静态web和动态web最本质的区别是静态web是无法进行数据库操作,而动态web是可以进行数据库操作的.动态web的最大特点就是具有交互性,所谓交互性就是服务器 ...

  5. 终于!Linaro 加盟 Zephyr 项目

    导读 为物联网构建实时操作系统的开源协作项目 Zephyr 项目宣布,Linaro 有限责任公司以白金会员的身份加盟该项目.Linaro是一家为 ARM 架构开发开源软件的协作工程组织,也是全球性机构 ...

  6. SA 的参数

    SA 的参数也只能是常数数组. http://www.cnblogs.com/del/archive/2009/10/27/1590692.html ja := SA([]); jo := SO(); ...

  7. JQery w3school学习第一章 标签的隐藏和显示

    鄙人初学JQuery,最关键的是JQuery获取标签对象的方式 这一章学习的是点击按钮让所有标签的文字以及标签栏的位置隐藏起来,因为单纯的隐藏文字,还是会有空格和空行的影响 这里最关键的代码就是 $( ...

  8. 单人SVN提交bug

    The working copy "初识tableVIew" failed to commit files. fatal: Unable to create '/Users/zjj ...

  9. 去除hadoop启动时的警告

    hadoop启动的时候,会出现以下警告提示: 执行more start-all.sh查看该文件 但/libexec下不存在hadoop-config.sh文件,所以会执行bin/hadoop-conf ...

  10. MVC的传递数据的方法

    1.使用ViewBag #region 0.2 Action方法 + ActionResult Index2() /// <summary> /// Action方法 /// </s ...