1.java文件的基本结构:
1. java 语言的源程序代码有一个或多个编译单元组成,每个编译单元只能包含下列内容
1) 一个程序包语句(package statement)
2) 引入语句(import statement)
3) 类的声明
4) 接口声明
2. java中的每个编译单元有若干个类,编译后,每个类生成一个.class文件。.class文件是java的虚拟器嘛。
3. java 中一个文件 就是一个类 及类名与文件 名须相同。
2. 1)java 中有8种基本数据类型即:byte、int、char、long、float、double、boolean和short
2) 数组类型: 任意一种基本数据类型或者复合数据类型都对应的有一个数组类型。
3) 类,接口,抽象类等我们自定义的类或API中定义的类
3.类与对象的 关系分析和怎样创建类(属性和方法)
在java中,我们可以在类中 能够定义属性 和方法,当然只能做这两件事。然后根据类可以创建对象,创建的便具有该类中的属性,并且可以调用该类中的方法。这是类与对象的基本特征。
在A类我们根据A类可以创建一个对象(在主函数中创建,一般称作程序入口),然后便可以调用它的方法。
public class Studnet
{
private String name ;// 属性
public viod Study(){
system.out.prinln("学习java!!!");
}
//程序入口
public static void main(String args[]){
Studnet st=new Student();
st.study();
}
}
我们创建 A B 两个类, 我们可以在 B类中 根据A类创建一个对象a,a 便可以 调用A类中的方法,在B类我们写一个函数用来实现a掉用它的方法,我们在 写一个Test 类, 在这个类中 我们写主函数,在主函数中创建 B类的对象b,b就可以调用B类中的方法 。这是 对象简单的调用方法 的抽象实例。并且是一个对象在一个类中调用它的方法。
当然还有这样的问题,就是在A类中根据A类创建了它的对象,那么可不可以在B或C中 通过它调用它的方法。就是一个对象在超过两个类中,使用它,通过它掉用他的方法。不过这就涉及到了监听机制,在下面有,关于它的解释。
4. 创建对象的方式
最常用的(可以说,我目前基本仅用的) new 构造器。
Studnet st=new Student();
还有一种(我用到过一次,是在画板的项目中) 代码:
import java.awt.Graphics;
public class DrawUI extends javax.swing.JFrame {
// 程序入口
public static void main(String args[]) {
// 创建一个 画板的类
DrawUI dd = new DrawUI();
dd.showUI();
}
Graphics gr = this.getGraphics();// 得到对象的另一种方法
}
5.一个对象只能调用在其定义的类及其父类中声明了的方法
如果我们已在子类中重写了父类中的方法,那么当我们调用时调用的一定是子类中的方法。
6.构造方法的作用,特点,构造方法与一般方法的区别
构造方法中最主要的作用就是创建一个对象,或说当我们创建一个对象时就必须使用构造器方法,如:DrawUI dd = new DrawUI();
DrawUI() 就是构造方法。
当我们创建了一个类时,系统就会提供一个默认的构造器(构造方法),无任何参数就是默认的构造器。构造方法是可以重载的,当我们重载了构造方法时,我们调用的一定是我们重载的构造方法,如果我们想调用默认的构造方法,我们就必须声明了。或说我们在类中声明了什么样的 构造方法,我们才(就)可以调用。
与一般方法不同的是,构造方法只能调用一次。而一般方法可以被多次调用。
7 为什么需要继承?继承到什么?如何继承?
程序就是模拟现实,继承在现实世界中是存在的,当程序中有了继承才能更好的模拟现实。这就继承的来源。
当我们描述学生类时,有大学生,中学生。。。。他们都具有学生的一些共同的属性,我们便可以把这些相同的属性放在一起,写一个父类(学生类),大学生和中学生之间必有差别:比如在学习的方法上,因此我们再写两个类,中学生类和大学生类。他们共同的特点我们只要从父类中继承既可以了。这样我们既可以了解到他们之间的关系,在写程序时,又可以简化代码。
在java中父类又叫做超类,并且继承是单根继承,通俗的讲就是一个儿子只有一个老爸。子类可以继承到父类中所有的方法与(public)属性。
子类继承父类用关键字 extends 。
9方法的重载与重写?多态的理解,方法的重载与重写与多态的关系。
重写是在 继承中用到的,当子类中的方法与父类中方法的具体内容不相同时,我们就要重写父类中的方法。
当我们要调用Shape 中画的方法的时, sh.draw(gr);(sh为形状的对象)调用会产生不同的结果,即画出不同的形状(这也是我们的愿望),这就是多态(多态的结果有不确定性,但是肯定是我们可以控制或是我们可以预料到,当某种条件满足时)。
重载 就是在一个类中写了很多同名但参数不相同的方法,参数不同包括类型不同和数量不同。
在很多书上面关于多态 解释是 同样的方法,不同的实现。方法相同是说方法名字相同,(当然的方法也有着相似的作用)或说这些所谓的相同的方法是经过重载或者经过重写的 而得到的“”同的方法” ,对于这些“相同的方法”我们在调用时只需要 调用一次,然后再根据其他的条件判断 他最终执行的结果。10.自动转型与强制转型
“泛型”
11.常用的界面开发组件:
java.awt
javax.swing
(百度了一下,感觉很实用)
javax.swing 最常用的包,包含了各种Swing组件的类
javax.swing.border 包含与Swing组件外框有关的类
javax.swing.colorchooser 针对Swing调色版组件(JColorChooser)设计的类
javax.swing.event 处理由Swing组件产生的事件
javax.swing.filechooser 包含针对Swing文件选择对话框(JFileChooser)所设计的类
javax.swing.plaf 处理Swing组件外观的相关类
javax.swing.table 针对Swing组件表格(JTable)所设计的类
javax.swing.text
包含与Swing文字组件相关的类
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree 针对Swing树状元素(JTree)所设计的类
javax.swing.undo 提供Swing文字组件的Redo与Undo功能
12.事件监听机制
1)事件源对象,点击按钮 (JButton) 点击鼠标 拖动鼠标 etc
2) 我们根据相应的事件源对象 创建相应 的监听器接口
3)创建 相应的监听器对象
4) 把监听器对象 绑定到相应的 事件源对象上。
13. 数组定义的方法
一维数组
int t[] = new int[10];
int t[] = new int[]{1,2,3,4,5,6};
int t[] = {1,2,3,4,5,6};
二维数组
int[][] a = new int[10][8];
int[] a[] = new int[10][8];
14 自定义队列(实现长度可变的数组)
队列类中我们要实现的方法有,
a. 根据下标Index插入一个元素e
把Index 前面的 元素复制到一个新的队列中,把元素e
插入到 Index 的位置,把后面的元素在全部复制过去,把长度加1,
再 新的数组赋值给原来的数组。
b. 根据下表删除一个元素,
把Index 前面的 元素复制到一个新的队列中,把Index后面的元素
直接复制到后面的数组中,把长度减一, 再把新的的数组赋值给原
来的数组。
c. 根据下标得到一个元素的值,
根据直接得到下表元素的值
d. 得到列表的长度,
返回数组的长度。
15.值传递与引用传递
值传递传递的只是数值,引用是传的地址,在java中对象的的传递是引用传递。
package netjava.txv.xue0610;
public class Student {
//方法
public void study(){
System.out.println(" 学习的方法很重要!!!");
}
}
package netjava.txv.xue0610;
public class Test {
// 创建学生对象
static Student stu1 = new Student();
static Student stu2=stu1;
//程序入口
public static void main(String args[]){
Test te=new Test();
System.out.println(stu1+"<<<<<"+stu2);
}
}
输出的结果是:netjava.txv.xue0610.Student@c17164<<<<<netjava.txv.xue0610.Student@c17164
(17164是地址编号)
这就是我们 可以用监听器传对象的原因了,也就解决了我们要在两个类中用同一个对象的问题了(在第3点中,我们留下了这个问题) 。
分享到:
相关推荐
这篇博客的文章链接虽然无法直接查看,但从标题我们可以推测它可能是关于Java Canvas的使用经验和技巧的总结。 首先,Java中的Canvas类是一个非常基础的绘图接口,它没有内置的绘图功能,需要开发者自行实现。你...
Protel99SE是一款经典且广泛使用的电子设计自动化(EDA)软件,主要用于电路原理图设计和PCB(印制电路板)布局布线。本文将深入解析protel99SE画板的简明流程...希望这份简明总结能为你的PCB设计之路提供有力的支持。
在给定的"简单画板开发总结"中,虽然具体使用的编程语言和库未明确指出,但我们可以假设它涉及到的是基本的绘图API的使用。 1. **绘图API**:无论是哪种语言,绘图API都是画板的核心。例如,HTML5的Canvas API提供...
【标题】:“画板保存总结”涉及的知识点主要围绕图形绘制、事件监听和文件操作,这些是计算机图形学和Java编程中的基础概念。 【描述】虽然没有提供具体的内容,但根据“画板保存总结”这一标题,我们可以推测这篇...
### 高频PCB板设计心得总结 #### 一、前言 随着电子产品向着更高频率、更高性能的方向发展,高频PCB(Printed Circuit Board,印制电路板)设计成为了电子产品研发过程中的关键技术之一。良好的高频PCB设计不仅...
在本文中,我们将深入探讨如何使用...总结起来,Java实现的画板程序涉及到GUI设计、图形绘制、事件处理、文件操作等多个核心Java技术。通过学习和实践这个项目,开发者可以加深对Java Swing的理解,提升GUI编程能力。
总结来说,"几何画板加自定义工具包.zip"不仅提供了一个基础的几何画板试用环境,更赠送了一份海量的自定义工具集,使得数学教学和学习变得更加生动有趣。无论是初学者还是经验丰富的用户,都能从中找到适合自己的...
总结来说,"opencv画板功能实现源程序"项目通过OpenCV提供的图形绘制函数和鼠标事件处理,实现了让用户在交互式窗口上自由绘画的功能。项目中可能涉及多个Python模块,每个模块负责不同的功能,如主程序控制、画板...
总结,画板Demo例子主要展示了如何在HTML5环境中使用画板API进行图形绘制。通过理解并实践这些基本操作,开发者可以创建出丰富多样的网页图形效果和应用程序。在压缩包`jihehuabao5.06`中,可能包含了实现这些示例的...
总结来说,玲珑画板6.045版是一款轻量级但功能强大的数学作图工具,它的出现为数学教育领域提供了新的可能性。无论是教学还是自学者,都可以从中受益,通过直观的图形化方式加深对数学的理解,提升学习效率。所以,...
总结而言,“几何画板文件打包机(GSP转EXE)”是一项具有革命性的发明。它不仅解决了教学资源分享的难题,而且显著提升了教学和学习的效率。这款工具让几何画板的使用更加灵活,方便教师和学生在没有安装几何画板...
总结来说,"WPF+WCF画板聊天程序"是一个结合了先进图形界面技术与高效通信机制的创新应用,它利用WPF创建了生动的画板环境,借助WCF实现实时的聊天和协作功能,为用户提供了一种新颖的在线沟通和创作方式。...
总结起来,"几何画板课件350套 (2).zip" 是一个全面的几何学教育资源,包含了大量的教学实例和练习,适用于教师的教学辅助和学生的学习巩固。无论是在课堂教学还是自主学习中,这个压缩包都能提供丰富的素材,帮助...
总结一下,易语言画板自动换行写模块是一个帮助开发者在画板上实现文本自动换行显示的工具。它涉及到了字符串处理、字符测量、画板操作等多个方面的知识,是易语言图形界面编程中的一项实用技术。通过学习和应用这个...
总结起来,易语言画板带滚动条加载图片的实现涉及到文件操作、控件交互、事件处理等多个知识点。通过熟练掌握这些技能,开发者可以创建出具有高级交互功能的图形用户界面,满足各种复杂的显示需求。在实际应用中,还...
#### 六、总结 通过本文的详细介绍,我们了解到几何画板5.01控件不仅解决了以往版本中存在的问题,还进一步增强了其功能性和易用性。对于广大教师来说,这一工具无疑将成为提升教学质量的重要帮手。无论是制作动态...
总结来说,通过“易语言画板画线”项目的开发,学习者能够深入理解易语言的编程基础,包括图形用户界面的设计、事件驱动编程、绘图命令的使用,以及文件操作等。该项目不仅能够帮助初学者快速上手易语言编程,而且...
总结,这个"VC实现的画板"项目是一个综合性的学习案例,涵盖了Windows编程的基础、GUI设计、事件处理、绘图函数和状态管理等多个方面。对于想要提升VC编程技能,尤其是对GUI应用程序开发感兴趣的开发者来说,这是一...
总结,MFC为创建Windows桌面应用提供了强大的支持,尤其是对于画板类应用,MFC的图形绘制能力和用户交互处理机制使得开发过程更为简便。通过定制CView类,结合MFC的事件处理和GDI绘图API,我们可以构建出功能丰富的...