20165218 2017-2018-1 《Java程序设计》第三周学习总结

20165218 2017-2018-1 《Java程序设计》第三周学习总结

教材学习内容总结-第四章 类与对象

面向对象语言

需要完成某种任务时,首先要想到,谁去完成任务,即哪个对象去完成任务;提到数据,首先想到这个数据是哪个对象的。————《Java 2实用教程》P51

面向对象编程的三个特性:封装性、继承、多态

  • 封装性: 将数据和对数据的操作封装在一起。通过抽象,即从具体的实例中抽取出共同性质形成一般的概念。
graph LR
A[行为/功能]-->|抽象|B[方法]
graph LR
A[状态描述]-->|抽象|B[属性]
  • 继承: 子类可以继承父类的属性和行为
  • 多态: 一是操作名称的多态性,即向操作传递不同消息;二是继承有关的多态,指同一个操作被不同类型对象调用时可能产生不同行为。

  • 类=类声明+类体
  • 类体的内容:变量的声明+方法定义
  • 成员变量在整个类内都有效,其有效性与它在类体中书写的先后位置无关。
  • 方法中的局部变量只在方法内有效,且与其声明的位置有关
变量 有效范围
参数 整个方法
在一个复合语句中声明 该复合语句
在一个循环语句中声明 该循环语句
  • class A{
    int a = 12; \\合法,声明的同时赋予初值12
    }
class A{
    int a;
    a = 12;\\非法
}

类体的内容中不能有语句,语句只能出现在方法体中


构造方法与对象的创建

  • 构造方法

    程序用类创建对象时需要的一种特殊方法,名字必须与他所在的类名字完全相同,没有类型

System.out.println("南孚电池的储电量是:"+nanfu.electricityAmount);

类的名字 对象名字 \\声明对象
对象 = new 构造方法 \\为对象分配变量(使用new运算符和构造方法)
  • 使用对象

    对象.变量
    对象.方法

参数传值

  • 可变参数

    \\示例
    public void f(int ... x)
    \\示例2
    public void g(double a, int ... x)
    \\错误示例,可变参数x代表的最后一个参数不是method方法的最后一个参数
    public void method(int ... x, int y)

    可变参数不给出参数列表中从某项开始直到最后一项参数的名字和个数,但这些参数类型相同。参数代表可以通过下表运算来表示参数列表中的具体参数。


实例成员与类成员(static)

  • 实例变量与类变量

    实例变量和相应的对象关联,类变量和相关联

  • 实例方法与类方法

方法 实例方法 类方法
分配入口地址 该类创建对象后 该类被加到内存时
调用 通过对象调用 通过类名和对象调用皆可
操作 可操作实例变量和类变量 只能操作类变量

this关键字

表示某个对象(注意与前文区分成员变量与局部变量的this区分),可以出现在实例方法和构造方法中,但不可以出现在类方法中。

  • this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象

  • this关键字出现在实例方法中时,就代表正在调用该方法的对象


访问权限

权限 关键字 含义
私有 private 在B类中,不能通过A类的类名来调用A中的私有类变量和私有类方法
共有 public B类中用类A创建了一个对象后,该对象能访问A中的共有变量和共有方法。B中也可通过A的类名调用A中的类成员变量和类方法
受保护的 protected

B类中用类A创建了一个对象后,如果B和A类在同一个包中,那么该对象可以访问A的protected变量和protected方法。任何一个与A类同包的类中,也可通过A的类名访问A类的protected类变量和protected类方法

友好| 不用privatepublicprotected修饰 | B类中用类A创建了一个对象后,如果B和A类在同一个包中,那么该对象可以访问A的友好变量和友好方法。任何一个与A类同包的类中,也可通过A的类名访问A类的类友好成员变量和类友好方法


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

  • 问题1:“友好变量和友好方法”与“受保护的成员变量和方法”有什么不同?
  • 问题1解决方案:成员变量分为实例变量和类变量。“友好”是“任何一个与A类同包的类中,可通过A的类名访问A类的类友好成员变量和类友好方法”;“ protected ”则是“任何一个与A类同包的类中,可通过A的类名访问A类的protected类变量和protected类方法”。“友好”比protected权限更大一些。

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

  • 问题1:当需要同时编译三个源文件时,比如Example4_8.java,Circle.java,Circular.java(都在Ch4/src之下,当前位置是Ch4,在命令行输入javac -d bin src/Example4_8.java,会出现如下状况

  • 问题1解决方案:这是因为同时需要编译的Circle.java,Circular.java不在Ch4之下,需要进入Ch4/src后,利用javac -d ../bin Example4_8.编译即可:

  • 问题2:教材第76页实例

  • 问题2解决方案:虽然在类Example4_9没有声明数据类型,但在类SIM中声明了double型,调用SIM为对象simOne分配变量时,数据类型要保持统一。在后面加大写字母L
  • 问题3:因为理解不深刻,错把代码写成

  • 问题3解决方案:声明类的格式是类 对象名字,而使用对象则是对象.变量/方法,若是类变量,则可以类.类变量,通过类名直接访问类变量

代码托管

参考资料

原文地址:https://www.cnblogs.com/zicerain/p/8597237.html

时间: 2024-10-12 15:08:47

20165218 2017-2018-1 《Java程序设计》第三周学习总结的相关文章

20165218 2017-2018-2 《Java程序设计》第一周学习总结

20165218 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一章.Java入门 1. Java特点 Java具有简单.面向对象.平台无关.多线程.动态等特点,其中平台无关是使它风靡全球的最重要的特点.平台无关指同样的Java指令在不同的平台上都可以运行,不受平台本身的机器码的影响.这是由于Java可以在计算机的操作系统之上在提供一个Java运行环境. graph LR A[Java语言]-->B[字节码] B-->C[机器指令] 2. 平台=O

20155336 2016-2017-2《JAVA程序设计》第二周学习总结

20155336 2016-2017-2 <JAVA 程序设计>第二周学习总结 教材学习内容 1: GIT版本检测 2: JAVA中基本类型 整数 字节 浮点数 字符 布尔(▲) 通过API可以得知各个类型可存储的数值范围 public class Range {public static void main(String[] args){ //byte.short.int.long的范围 System.out.printf("%d~%d%n", Byte.MIN_VALU

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了

20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结

学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不需接触底层数据库驱动程序的差异性. 本章,我们需要了解JDBC与API使用和概念,我们先要认识应用程序如何与数据库进行沟通,数据库本身是一种独立运行的应用程旭,程序员撰写的应用程序是利用通信协议对数据库进行指令交换,以进行数据的增加删除以及查找. 通常应用程序会利用一组专门与数据库进行通信协议的链接库,以简化

20145326《Java程序设计》第二周学习总结

20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对象支持语法的探讨前,对于类型.变量.运算符.流程控制等,这些各种程序语言都会有的基本语法元素,还是要有一定的基础.虽然各种程序语言都有这些基本语法元素,但千万别因此而轻忽它们,因为各种程序语言都有其诞生的宗旨与演化过程,对这些基本语法元素,也就会有其独有的特性. 1. 类型 在java的世界中,并非每个东西都

20145311 《Java程序设计》第九周学习总结

20145311 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC 16.1.1JDBC简介 JDBC(Java DataBase Connectivity)是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性. 厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型: ·Type 1:JDBC-ODBC Bridge Driver·Type 2:Native API

20165324《Java程序设计》第一周学习总结

20165324<Java程序设计>第一周学习总结 教材学习内容总结 第一章:Java入门 重点一.编写Java程序 第一步编写源文件,(注:第一步中Java严格区分大小写:Java源文件的扩展名是*.java一般Java源文件名与类名一样.保存类型为所有文件.) 第二步编译,(注:第二步中使用Javac命令来编译源文件如: javac Hello.java 编译之后会生成一个字节码文件,字节码文件的文件名和类名相同,字节码文件的扩展名是*.class). 第三步运行,(注:第三步中使用jav

20165203 2017-2018-2 《Java程序设计》第一周学习总结

20165203 2017-2018-2<Java程序设计>第一周学习总结 教材学习内容总结 (一)Java的地位 Java是面向对象编程,并涉及网络.多线程等重要的基础知识,是一门很好的面向对象的语言. (二)Java的特点 简单 面向对象 平台无关 多线程 动态 (三)Java三大平台 Java SE Java EE Java ME (四)Java SE的四个组成部分 JVM: Java虚拟机,包含在JRE中 JRE:Java执行环境,运行Java程序必需 JDK: 包括JRK及开发过程中

20165223《JAVA程序设计》第二周学习总结

20165223 <JAVA程序设计>第二周学习总结 教材学习内容总结 第二章要点 标识符与关键字 基本数据类型 类型转换运算 输入输出数据 数组 第三章要点 运算符与表达式 语句概述 if条件分支语句 switch开关语句 循环语句 break和continue语句 数组与for语句 教材学习中的问题和解决过程 标识符与关键字 标识符=名字:由字母.下划线.$.数字组成,长度不受限:第一个字符不能是数字字符:区分大小写:不能用关键字:不能是true.false.null java使用的语言:

20172318 2016-2017-2 《Java程序设计》第一周学习总结

20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一些Java的基本命令,学会了会编译.运行.调试简单的Java程序 教材学习中的问题和解决过程 问题1:教程有很多专有词汇,有时候实际操作完全不会 问题1解决方案:问舍友和课代表解决大部分问题,剩下的靠百度 代码调试中的问题和解决过程 问题1:写了个小程序发现无法上传 问题1解决方案:没有用cd链接 问题2:使