转眼间玛雅预言的世界末日就已经过去了,或许这正是一个新纪元的开始,也是我开始踏上的人生的新的征程,只为不凡而来。
这次主要是总结之前学习的一些知识点,加上自己的一些理解,初来咋到,其中一些不太合理的地方还希望大家多加指点,谢谢。
1. JDK,JRE,JVM的区别和联系
JDK,也就是java语言的SDK,java软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
JVM(Java
Virtual Machine)Java虚拟机,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
JRE(Java Runtime Environment)运行java程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
三者是一个统一的整体,都是运行java程序所不可或缺的集合与环境,换句话说,JVM是实现这个整体运行的虚拟CPU,而JRE提供了动力,充当了显卡与内存的作用,使整个java体系更加完备与迅速的运行起来,JDK是核心内存,里面即包括了大量的java语言所需的类,又是整个体系的核心,没有了JDK,就相当于一台计算机没装操作系统,自然很多人不会运用。
2.类与对象的关系分析
都知道类是一个具有相同特征的物体的集合,对象的属性是实体自身所具有的性质,如具体的一个学生,他有身高,体重等特征,而我们所说的学生,却是指具有身高体重这些共同特征的类,类恰是这些对象的具体的生成模型,也就是说,从广义上来看,类是对象的抽象框架,对象是类的具体表达。而java语言恰是完全面向对象的程序设计,这一点与C语言有着本质的区别。
3.构造方法与一般方法的区别
构造方法(又名构造器方法)是一种为成员变量赋初值的专门方法,是一种特殊的成员方法,它的特殊性反应在以下几个方面:1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。 3.每个类可以有零个或多个构造方法.4.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。 5.构造方法在初始化对象时自动执行,一般不能显式地直接调用.当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用。构造方法可以被重载。没有参数的构造方法称默认构造方法与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。要注意的是每个类都会默认的有一个无参的构造方法,但如果重新写了一个有参数的构造器,则默认的无参构造方法不能被调用,除非在类定义中显式声明。
4.方法的重载与重写的区别
在一个类中可以定义多个同名,但参数类型和数量不同的方法,在使用的时候通过对方法体传相应的参数来调用同名的但作用不同的方法,如:
public class Student {
private String name;
public void setName(String n){
name=n;
}
public void study(){
System.out.println(name+"在学习");
}
public void study(int hour){
System.out.println(name+"学习了"+hour+"小时");
}
}
public class Manager {
public static void main(String args[]){
Student stu=new Student();
stu.setName("张三");
stu.study();
stu.study(5);//通过传值来调用不同的study方法
}
}
方法的重写是子类在继承的时候重写父类的方法,这样在执行的时候就可以调用子类中特定的方法,而不是父类中方法,如:
public class Student {
private String name;
public void study(){
System.out.println("Student类中学习方法,学生的名字是"+name);
}
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
}
public class UNStudent extends Student{
public void study(){
System.out.println("UNStudent学习,要独立名字"+getName());
}
}
public class Manager {
public static void main(String args[]){
Student stu=new Student();
stu.setName("我是学生");
stu.study();
UNStudent uns=new UNStudent();
uns.setName("我是大学生");
uns.study();
}
}
5. 为什么需要继承?如何继承?继承到什么?
就如上面所讲的,子类继承父类,会默认的继承父类中的所有方法和结构体,这样的话,子类在定义的时候即使不写任何方法也会具有和父类一样的属性和方法,继承恰是可以这样,使一类具有相同特征的整体,能够定义出相同的方法,简化程序设计的复杂度以及重复的操作,同样,子类在继承的时候也可以重写父类的方法来定义特有的方法,提高程序的便捷性。
6.自动转型和强制转型
小范围的数据类型值可以通过赋值运算直接转换成为大范围的原始数据类型,这种转型方法称为自动转型,而大范围的数据类型要转换为小范围的数据类型时就要进行强制转型,强制转型很可能碰到值溢出的情况,一般情况下不推荐使用。
7.关于子类特有方法的调用
在继承的时候,子类不光可以定义父类中已有的方法,还可以定义本身的方法,在子类中,通过定义子类特有的方法,来产生与父类不同的方法体,这一点与方法的重写不同,方法的重写是在子类中定义父类已有的方法,再对父类的方法进行重定义,来产生不同的结果,在调用时,可以通过调用特有方法来完成自己的事件。如可在上述UNStudent中定义一个cet4()的方法,在调用时可以使用uns.cet4()来调用这个方法。
8.多态的理解
多态是指相同类型的对象调用相同的方法的时候,由于继承和重写机制,得到的结果不一定相同。比如说,上述程序中,如果再定义一个ComStudent来继承UNStudent,然后再重写父类中的方法,得到的结果又会不一样,具体实现如下:
public class ComStudent extends UNStudent{
public void study(){
System.out.println("计算机专业学生学习名字"+getName());
}
}
public class Teacher {
//教授两名学生的方法
public void teach(UNStudent stu1,ComStudent
stu2){
stu1.study();
stu2.study();
}
}
public class Manager {
public static void main(String args[]){
UNStudent uns=new UNStudent();
uns.setName("我是大学生");
ComStudent com=new ComStudent();
com.setName("计算者");
Teacher te=new Teacher();
te.teach(uns,com);
}
}
10.常用swing组件举例
在javax.swing.*;文件包下有着大量的swing组件,通过对不同组件的使用能够完成许多事件,具体代码如下:
import javax.swing.*;
public class FrameTextField {
public static void main(String args[]){
FrameTextField ft=new FrameTextField();
ft.show();
}
public void show(){
//创建一个窗口
JFrame jf=new JFrame();
//创建流式布局管理器
java.awt.FlowLayout fl=new java.awt.FlowLayout();
jf.setLayout(fl);
//创建菜单栏
JMenu mu1=new JMenu("文件");
JMenu mu2=new JMenu("资源");
JMenuBar mu3=new JMenuBar();
//创建一个单选按钮菜单项
JRadioButtonMenuItem rbm=new JRadioButtonMenuItem();
//创建标签
JLabel la1=new JLabel("账号");
JLabel la2=new JLabel("密码");
//创建输入框
JTextField tf1=new JTextField(20);
JTextField tf2=new JTextField(20);
//创建一个单选按钮
JRadioButton rb=new JRadioButton();
//创建滚动条
JScrollBar sb=new JScrollBar(0);
//创建按钮选项
JButton loginbu=new JButton("登录");
JButton cancelbu=new JButton("取消");
jf.add(mu1);
jf.add(mu2);
jf.add(mu3);
jf.add(rbm);
jf.add(la1);
jf.add(tf1);
jf.add(la2);
jf.add(tf2);
jf.add(loginbu);
jf.add(cancelbu);
jf.add(sb);
jf.add(rb);
jf.setTitle("文本");
jf.setSize(600, 400);
jf.setVisible(true);
jf.setDefaultCloseOperation(3);
}
}
分享到:
相关推荐
《Java程序设计》第一周的学习总结涵盖了多个方面,旨在为初学者建立坚实的基础。课程考核方式多样,包括翻转课堂的在线考试、实验、团队项目、进度报告以及演示答辩等,强调理论与实践的结合。 首先,课程的考核...
在《Java程序设计》第一周的学习中,我们深入了解了Java语言的基本历史和发展,以及它在不同平台上的应用。Java起源于Sun公司的Green项目,最初是为了创建一个分布式代码系统,目标是实现家用电器间的通信。由于C++...
主要内容是异常,包括了一个游戏项目
在本压缩包“《java课程设计》第十三周学习总结doc文档合集整理.zip”中,我们可以看到聚焦于Java编程语言的学习与应用。这个资源集合是针对Java课程设计的第十三周学习成果的汇总,旨在帮助学生巩固所学知识,提升...
这周有一个简单的项目实战,只是简单的去实现要求和功能,熟悉之前所学习的知识以及应用,还包括类和对象,方法和方法重载等相关内容。
Java程序设计第一周的学习涵盖了Java语言的基础概念、平台特性、环境配置以及开发工具的使用。以下是对这些知识点的详细说明: 1. **Java语言的跨平台特性**:Java的跨平台性基于“Write Once, Run Anywhere”(WORA...
【第一周学习总结】 在第一周的学习中,我们聚焦了几个关键的编程概念和技术,主要集中在数组、链表以及算法优化。以下是对这些主题的详细解释: 1. 一维数组坐标变换: 数组是一种线性数据结构,用于存储同类型...
在Java编程语言的学习过程中,第三周的总结涵盖了多个核心概念,这些都是成为一名熟练的Java开发者的基础。以下是关于这些关键知识点的详细解释: 1. **基础语法**:Java的基础语法是学习的起点,包括变量声明、...
在《Java程序设计》第7周的学习中,主要聚焦于Java图形用户界面(GUI)的事件处理机制。这一部分的学习是Java编程中的一个重要环节,因为它让应用程序具备了响应用户交互的能力,使得程序更加生动和实用。 1. **...
### Java Date 学习总结 在Java开发过程中,时间日期处理是常见的需求之一。本文将对`java.util.Date`、`java.util.Calendar`以及`java.text.SimpleDateFormat`等类的使用进行详细总结,帮助读者更好地理解和掌握...
java开发实习周记12篇是关于java开发实习的周记文章,共有12篇文章,从实习第一周到实习第十二周,每篇文章都记录了实习生的实习经历和java开发知识点。下面是每篇文章的知识点总结: 实习第一周 了解公司背景、...
在第二周的学习总结中,主要涵盖了哈希表、映射集合、图、二叉树、递归、分治和回溯等核心概念。这些知识在IT领域,尤其是编程和算法设计中扮演着重要角色。 哈希表是一种数据结构,通过哈希函数将元素映射到特定...
实验涵盖了三个编程任务:完成第一章的习题5和6,第二章的习题7,以及编写一个程序来计算整数的各位数字之和。此外,还要求打印输出斐波拉契数列。 【实验内容详解】 1. **计算整数各位数字之和**:这个任务涉及到...
在第一周实习中,作者主要了解了公司的背景、产品、发展方向等。作者也了解到,实习期间需要忘掉大学里的自由作息时间,克服困难,养成良好的工作生活习惯。在这期间,作者也学习了java编程的环境配置,熟悉了工作...
1. Bootstrap ClassLoader是JVM的一部分,用C++实现,加载JVM自身所需的类,如`java.lang.*`、`java.util.*`等,这些类通常位于$JAVA_HOME/jre/lib/rt.jar。 2. Extension ClassLoader是Bootstrap ClassLoader的...
### Java学习资料(北邮) #### 一、课程概述与目标 本课程“Java Programming”由伦敦大学玛丽皇后学院电子工程与计算机科学学院提供,针对的是面向对象编程的基础与高级概念的学习。该课程旨在帮助学生掌握Java...
作者从实习的第一周开始,到达了广州数鹏通科技有限公司人事部报道,并开始学习公司的运作和工作流程。作者了解了项目小组需要使用的技术,如hibernate、spring、iBATIS、jQuery、EXTJS、DWR、easyui等等,并着重...
例如,第1题可能要求你创建一个简单的程序,用于计算两个数的加减乘除;第2题可能涉及字符串操作,如字符串的连接、查找或替换;第3题可能要求实现一个简单的控制流程,比如判断一个数字是否为偶数;第4题可能涉及到...
- **时间安排**:设计在第16、17周进行,18周进行验收。 4. **考核标准**: - **设计与报告**:占总成绩的20%,评估系统设计的合理性。 - **软件编程能力**:同样20%,考察代码质量与实现功能。 - **自主解决...
本总结将探讨第二周学习的几个关键知识点:对象的上转型对象、final 和 static 关键字、方法的重载和重写,以及单例设计模式。 首先,对象的上转型对象是 Java 多态性的一种体现。它允许父类引用指向子类对象,从而...