zoukankan      html  css  js  c++  java
  • 《Java程序设计》第三周学习总结

    教材学习内容总结

    第四章

    4.1 编程语言的几个发展阶段

    面向对象编程主要体现下列三个特性:

    • 封装性
    • 继承
    • 多态

    4.2 类

    • 类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为。
    • 类体的内容由下述两个部分组成
      • 变量的声明:用来存储属性的值
      • 方法的定义:方法可以对类中声明的变量进行操作
    • 成员变量作用于整个类,其有效性与它在中的位置无关;局部变量只在方法中有效,而且从它声明的位置开始有效,有效范围是该复合语句。
    • 如果局部变量的名字与成员变量的名字像同,则成员变量被隐藏。若要使用被隐藏的成员变量,使用this关键字。
    • 局部变量没有默认值
    • 所有对成员变量的操作必须放在方法中

    4.3 构造方法与对象的创建

    • 如果没有编写构造方法,系统会提供默认构造方法。
    • 构造方法没有类型

    4.4 类与程序的基本结构

    • Java应用程序从主类的main方法开始执行
    • 如果应用程序的主类的源文件和其他源文件在同一目录中,可以只编译主类的源文件,Java系统会自动地先编译主类需要的其他源文件。

    4.5 参数传值

    • 对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别
    • Java中,方法的所有参数都是“传值”的,也就是说,方法中参数的值是调用指定的值的拷贝。
    • 当参数是应用类型是,“传值”传递的是变量中存放的引用,而不是变量所引用的实体。
    • 可变参数类型必须相同且放在参数列表的最后。参数代表可以通过下标运算来表示参数列表中的具体参数。可变参数使用方法为public void f(int ... x)。可以使用for each语句操作可变参数。

    4.6 对象的组合

    • 如果A类中的成员变量是用B类声明的对象,那么A和B的关系是关联关系。
    • 如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类,那么A和B的关系是依赖关系。

    4.7 实例成员与类成员

    • 实例变量和类变量的区别
      • 不同对象的实例变量互不相同
      • 所有对象共享类变量
      • 通过类名直接访问类变量
    • 实例方法和类方法的区别
      • 对象调用实例方法,实例方法可以操作实例变量和类变量
      • 类名调用类方法,类方法不可以操作实例变量
      • 设计类方法的原则

    4.8 方法重载

    • 方法重载:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同。两个方法的参数不同是指满足下列之一:
      • 参数的个数不同
      • 参数的个数相同,但参数列表中对应的某个参数的类型不同

    4.9 this关键字

    • this不能出现在类方法中,这是因为类方法可以通过类名直接调用,这时,可能还没有任何对象诞生。

    4.10 包

    • package语句作为Java源文件的第一条语句,指明源文件定义的类所在的包,即为该源文件中声明的类指定包名
    • 如果源程序省略了package语句,源文件中所定义命名的类被隐含地认为是无名包的的一部分,只是这些类的字节码被存放在相同的目录中,那么他们就属于同一个包。
    • 如果主类的包名是tom.jiafei,那么主类的字节码一定存放在.../tom/jiafei目录中,那么必须到tom的父目录去运行主类,用如下格式来运行:java tom.jiafei.主类名

    4.11 import语句

    • 常用包:

      • java.lang: 包含所有的基本语言类
      • javax.swing: 包含抽象窗口工具集中的图形、文本、窗口GUI类
      • java.io: 包含所有的输入/输出类
      • java.util: 包含实用类
      • java.sql: 包含操作数据库的类
      • java.net: 包含所有实现网络功能的类
    • 如果不更新classpath值,可以把程序使用的自定义的包名所形成的目录都放在同一文件夹中。

    4.12 访问权限

    • 不能用protected和private修饰类
    • 访问限制修饰符按访问权限从高到低的排列顺序是public、protected、友好的、private

    4.13 基本类型的封装

    详情见JDK文档中对Double、Float、Byte、Short、Integer、Long、Character类的描述

    4.12 对象数组

    Student [] stu;
    stu = new Student[10]
    

    上述代码仅仅定义了数组stu有10个元素,但这些对象目前都是空对象,因此在使用数组stu之前,应当创建数组所包含的对象。

    4.13 JRE扩展与jar文件

    • 只要将类打包为jar格式文件,放在扩展(/jre/lib/ext)中,程序就可以使用import语句使用扩展中的类了
    • 步骤:首先编写清单文件xxx.mf,然后使用jar cfm xxx.jar xxx.mf class文件路径打包,最后把xxx.jar文件放在JDK安装目录的/jre/lib/ext文件夹中

    4.16 文档生成器

    javadoc xxx.java

    杂项

    • java.util.Arrays类可以调用public static void sort(double a[])把数组按升序排序,或者使用public static void sort(double a[], int start, int end)对a中索引start~end-1的元素进行升序排序。
    • java.util.Arrays类可以调用public static int binarySearch(double a[],double number)对有序数组进行二分法查找,如果找到,返回索引值,否则返回一个负数。
    • java.lang.Character类包含以下方法:isDigit()判断一个字符是否是数字,isLetter()判断一个是字符是否是字母,isUpperCase()判断是否大写,isLowerCase()判断是否小写,toUpperCase()转为大写字母

    教材学习中的问题和解决过程

    • 问题1:使用package语句后,源文件目录结构分不清,在什么地方编译、运行?

    输入图片说明

    • 问题1解决方案:经过试验,得出结论,如果主类中用到了别的类,那么编译的时候必须在所有要用到的类的父目录进行。在编译用到package语句的类时,使用-d,java会自动生成对应的目录存放class文件;class文件一定要放在package对应的目录下。

    • 问题2:书上public、protected、友好的、private之间的区别讲的不清楚。

    • 问题2解决方案:参考博客java中private,public,protected详解

    输入图片说明

    代码调试中的问题和解决过程

    代码托管

    输入图片说明

    上周考试错题总结

    其他(感悟、思考等,可选)

    类是Java的核心,在程序的构造和思想上明显和面向过程编程不一样

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 32/32 3/3 20/20 掌握JDB用法
    第二周 261/293 3/6 18/38
    第三周 770/1063 2/8 10/48

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    普通人如何做到30分钟读一本书并做完笔记?
    谈谈MySQL死锁之二 死锁检测和处理源码分析
    谈谈MySQL死锁 一
    八种架构设计模式及其优缺点概述(中)
    八种架构设计模式及其优缺点概述(上)
    轻量级开源小程序SDK发车啦
    Magicodes.IE编写多框架版本支持和执行单元测试
    Magicodes.Sms短信库的封装和集成
    Magicodes.IE之导入学生数据教程
    如何基于k8s快速搭建TeamCity(YAML分享)
  • 原文地址:https://www.cnblogs.com/20175211lyz/p/10548911.html
Copyright © 2011-2022 走看看