[align=center][/align]第一周Java学习小结
1、 Java程序的编译和运行机制的理解
Java程序的编写完之后生成后缀名为.java的源文件,编译时生成后缀名为.class文件,它不像C语言最终生成可执行文件。运行是指计算机将我们编写的代码翻译成极其的二进制代码,执行并显示最终结果的过程。
2、 面向过程与面向对象的理解
面向过程指的是关注的是一个事件的过程,相当于谓语。即是指完成一件事的过程和步骤,如:f1->f2->f3-…,其最终结果已经确定,并且是唯一的。而面向对象关注的是对象,即相当于主语和宾语,强调动作的对象,其结果可能是不唯一的。如C语言是面向过程的 ,而C++语言是面向对象和面向过程的,Java语言是面向对象的。
3、 类与对象的关系分析
类指的是具有相同特征、行为的一群个体的集合,是一个抽象的概念,如:学生,老师,桌子,这些只是一个抽象的名词,实际上并不存在。而对象指的是一个具体的个体,如:张三,李四等等。
4、 如何定义类,如何创建对象,如何调用属性和方法
定义类:public class Student{}
创建对象:Student st=new Student();
调用对象的属性和方法,如:st.setName();st.study();
5、 构造方法与一般方法的区别
构造方法:如Student st=new Student();中的Student()就叫做Student类中的构造器方法。
任何一个类都默认包含一个无参构造器。如:
public void study(){}是一般方法
public study(){}是构造方法,也就是说,构造方法中不用写void,而一般方法都要写
6、 什么叫重载、重载的意义
重载是指一个方法只要它的参数个数或者类型不一样,就可以在同一个文件中写任意多次,调用方法时也必须带上参数。如:
public void study(){}//没有参数
public void study(int n){}//只有一个参数
public void study(int n,int m){}//两个同类型的参数
public void study(String s,int n){}//两个不同类型的参数
重载的意义:可以多次使用。
7、 为什么需要继承?如何继承?继承到什么?
继承可以减少代码量,可以继承与父类中相同的属性和方法
继承的写法
public class UNStudent extends Student{
}
这样子类就继承了和父类中相同的属性和方法
继承到的就是父类中的属性和方法
8、 自动转型与强制转型
自动转型:
Student stu1=new UNStudent();
是将UNStudent类转换成Student类,这样的话只能调用Student类中的方法和属性。一个对象是调用父类还是子类的方法,取决于对象本身的类型。子类有自己特有的属性,所以最后显示的结果并不是父类中定义的方法,而是子类中重写了父类但是方法体不一样的结果。
强制转型:
Student stu2 = new UNStudent();
UNStudent stu3=(UNStudent)stu2;
原本stu2是Student 类型的,加上个强制转换(UNStudent)就可以将其转换成UNStudent类型的了(因为创建对象是其本质UNStudent类型的)。但是值得注意的是,有些变量时不能强制转换的,否则就会出现错误,如:
Student stu=new Student();
UNStudent stu3=(UNStudent)stu;
因为stu本质上并不是UNStudent类型的,所以运行时就会报错。
9、 方法的重写和重载
重写:子类重新写了和父类一样的方法和属性,就是方法体不一样,但是类的参数和其他都没有任何改变。
重载:一个类中,只要方法的参数个数或者类型不一样,可以在同一个文件中写好几次这个方法,如:
父类:public class Student{
public void study(){
System.out.println(“abc”);
}
}
子类:public class UNStudent extends Student{
public void study(){
System.out.println(“defghi”);
}
}
这样,子类中的方法就将父类中的方法覆盖掉了,而输出自己想要的东西。
重载:
public void study(){}//没有参数
public void study(int n){}//只有一个参数
public void study(int n,int m){}//两个同类型的参数
public void study(String s,int n){}//两个不同类型的参数
方法的重载有无数多种类型,以上都是由于重载生成的不同方法。
10、 对于重写的方法和子类特有的方法的调用
重写的方法和父类中已有的方法一样,只是可能调用的时候方法体不一样。而子类出来具有与父类相同的方法外,其自身可能还有不同于父类的属性和方法,下面仅以方法为例。
父类中有方法:
public void study(){}
子类中也可以重写父类的方法:
public void study(){}
也可以定义自己的方法:
public void cet4(){}
还有其他更多的都可以定义。
11、 多态的理解
由于继承和重写机制,相同类型的对象调用相同的方法,得到的结果可能不一样,如:
Student stu = new Student();
stu.setName("李四");;
stu.study();
public void study() {
System.out.println(name + "在学习")
}
Student stu2 = new UNStudent();
stu2.setName("张三");
stu2.study();
public void study(){
System.out.println(name+"学习要靠自己");}
stu和stu2的对象类型都是Student类型的,调用的方法也相同,但是最后显示的结果是不一样的:前一个是“李四在学习”,后一个“张三学习要靠自己”,原因就在于子类继承和重写了父类的方法,但是方法体和参数不一样。
分享到:
相关推荐
第一周学习总结.pdf
【第一周学习总结】 在第一周的学习中,我们聚焦了几个关键的编程概念和技术,主要集中在数组、链表以及算法优化。以下是对这些主题的详细解释: 1. 一维数组坐标变换: 数组是一种线性数据结构,用于存储同类型...
【标题】: 信息安全系统设计基础第一周学习总结 【描述】: 本学习总结涵盖了第一周在信息安全系统设计基础课程中的学习内容,主要集中在Linux操作系统的基础知识和命令的掌握。 【标签】: 解决方案 【正文】: 在...
在《Java程序设计》课程的第一周学习总结中,我们对课程的目标、考核方式、学习内容以及学习方法进行了全面的梳理与总结。本课程不仅仅关注于理论知识的学习,更加注重学生实践能力的培养和综合技能的提升。这种教育...
在经过第一周的学习之后,我们可以对这些基础知识进行系统性的总结,以帮助我们更好地理解和应用这些知识。 首先,网络安全是信息安全的基石,它涉及到保护计算机网络免受攻击和非法入侵的一系列措施和方法。在第一...
在国培第一周的学习中,我们深刻体会到了教育的核心目标和内涵。李涵校长的讲座,不仅为我们的教育实践指明了方向,也为我们的心灵带来了一次洗礼。他提出的教育目标是培养具有全面素质和社会责任感的个体,这不仅仅...
朱笑宇开学第一周的生活与学习总结 开学第一周,对于每位小学生来说都是一个全新的开始,朱笑宇也不例外。在这新学期的起始阶段,他从生活自理能力到学习表现,都展示出了一定的进步与需要改进的地方,接下来,让...
在《Java程序设计》第一周的学习中,我们深入了解了Java语言的基本历史和发展,以及它在不同平台上的应用。Java起源于Sun公司的Green项目,最初是为了创建一个分布式代码系统,目标是实现家用电器间的通信。由于C++...
python学习总结第一周
在《信息安全系统设计基础》的第1周学习中,我们接触了三个核心概念:GCC、GDB和Makefile。这些工具是软件开发中不可或缺的部分,尤其是在保证代码质量和安全性的过程中起到重要作用。 GCC(GNU Compiler ...
【开学第一周值周总结随笔】 开学第一周,对于学生们和老师们来说,都是一个全新的开始,也是调整和适应的阶段。值周工作是学校管理的重要环节,它涉及到学生的日常行为规范、校园卫生、纪律以及学生的自我管理能力...
Java程序设计第一周的学习涵盖了Java语言的基础概念、平台特性、环境配置以及开发工具的使用。以下是对这些知识点的详细说明: 1. **Java语言的跨平台特性**:Java的跨平台性基于“Write Once, Run Anywhere”(WORA...
本文将对第一周的学习总结进行详细的知识点总结,包括 Web、Crypto、Misc 等方面的知识点。 Web 1. BurpSuite:熟悉 BurpSuite 的基本爆破流程,了解如何使用多线程爆破来加快速度,并学会配置字典。 2.御剑扫描:...
在第七周的学习中,我们深入探讨了三种初级排序算法的实现,它们分别是冒泡排序(BubbleSort)、插入排序(InsertionSort)和选择排序(SelectionSort)。这些算法是计算机科学中基础且重要的部分,尤其对于理解和...
在第八周的学习中,我们关注了LeetCode上的第63题——"不同路径 II",这是一个涉及动态规划(DP)的矩阵问题。本题要求计算一个有障碍物的网格中,从左上角到右下角有多少条不同的有效路径。这里的有效路径指的是...
在本篇520第六周学习总结中,主要讨论了动态规划(Dynamic Programming,简称DP)、深度优先搜索(Depth First Search,简称DFS)以及字典树(Trie)的应用,并涉及了双向广度优先搜索(BFS)的模板代码。...
在这篇总结中,我们见证了参与者王宁在第二周的学习旅程。他的体验不仅充满挑战,还充满收获,从团队建设到教育心理学,每一个知识点都为他的成长添砖加瓦。 首先,王宁在团队建设与领导力方面有了深刻的认识。团队...
总结,动态规划是一种强大的工具,它通过分解问题、存储子问题的解并利用这些解来解决复杂问题。从一维到二维,甚至更高维度的DP,其核心思想是一致的,即通过递归和递推来达到优化求解的目的。理解和掌握DP对于解决...
本周学习的内容主要集中在排序算法和python实现上。通过对不同排序算法的实现和分析,我们可以了解到每种排序算法的优缺点和使用场景。 一、选择排序 选择排序是一种简单的排序算法,它的基本思想是每次选择最小或...
主要内容是异常,包括了一个游戏项目