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. 操作系统cmd算法

    实验一  命令解释程序的编写(两周内) 一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS, ...

  2. js 替换 当前URL 特定参数

    js 替换 当前URL 特定参数 2012-12-24 20:45:53|  分类: JS&JQuery |举报 |字号 订阅   //替换指定传入参数的值,paramName为参数,repl ...

  3. Oracle创建表

    //创建表,列的内容 -- Create tablecreate table T_HQ_PC( pinpai VARCHAR2(20) not null, xingh VARCHAR2(40), ji ...

  4. linux修改系统时间和linux查看时区、修改时区的方法

    一.查看和修改Linux的时区 1. 查看当前时区命令 : "date -R" 2. 修改设置Linux服务器时区方法 A命令 : "tzselect" 方法 ...

  5. JQuery 来获取数据c#中的JSON数据

    C# 后台 (JSONHandler.ashx) <%@ WebHandler Language="C#" Class="JSONHandler" %&g ...

  6. 安装arbotix simulator仿真环境()

    先安装rbx1功能包: cd ~/catkin_ws/src git clone https://github.com/pirobot/rbx1.git cd rbx1 git checkout in ...

  7. #数据结构-fib

    /////////////////////////////////////////////////////////////////////////////// // // FileName : fic ...

  8. AFNetworking3.0概述

    最近一直在研究iOS网络开发,对NSURLSession套件进行了深入研究,作为iOS开发者,熟悉苹果的原生技术,可以在不需要第三方框架的情况下进行网络开发,也更有利于从底层了解iOS网络请求的原理, ...

  9. Struts2标签<s:textfield/>

    中的name="",取值顺序是,如不加#,先从root中栈顶取,没有取到(即使栈顶有这个属性但是属性为空还是向下取,这点和el表达式不同)就去actioncontext的map中取 ...

  10. 玩转渗透神器Kali:Kali Linux作为主系统使用的正确姿势TIPS

    Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具. 本文假设你在新装好的kali linux环境下… ...