一.
1:刚学了半年C,现在有刚接触java,难免有些不太习惯,只将刚学的总结一下.
2:java不同于C语言,其思想为:一切皆为对象,对象中封装着明确的行为.
3:现在编写一个经典的程序
//定义一个HelloWorld类
public class HelloWorld {
//设置主函数
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
结果为:HelloWorld
在定义一个类时其格式为:
public class 类名{
//函数体
}
类名的命名规则:应和设置的文件的扩展名相同,且每个单词的首字母应大写,开头的必须为英语字母或者为下划线,名字组成可以为字母,下划线,数字.
4:java的输出函数:
System.out.println("输出的内容");
System.out.ptint("输出的内容");
两者的区别:前者表示输出内容后换行.
后者表示输出内容后不换行.
5:String 是一个类,其也是一种数据类型
String 类中常用的调用方法
/**
* 按字典顺序比较两个字符串,返回值为int型,如果str1在字典中位于str2之则 *返回一个正值,
* 若相等则返回负值,否则返回0
*/
String str1 = "java";
String str2 = "cobol";
System.out.println("结果为 "+str1.compareTo(str2));
//将指定的字符串str2连接到str1
System.out.println("结果为 "+str1.concat(str2));
//测试字符串是否以指定的后缀结束,若是返回true否则返回false
String str3 = "va";
System.out.println("结果为 "+str1.endsWith(str3));
//判断两个字符串是否相等,若相等返回true,否则返回false
System.out.println("结果为 "+str1.equals(str1));
//判断两个字符串是否相等,但不区分大小写
String str4 = "JAVA";
System.out.println("结果为 "+str1.equalsIgnoreCase(str4));
//返回指定字符串在一个字符串中第一次出现处的索引
String str5 = "cn.java";
System.out.println("结果为 "+str5.indexOf(str1));
//得到一个字符串的长度
System.out.println("结果为 "+str5.length());
//将一个字符串转换为字符数组
char [] array = str1.toCharArray();
for(int i=0;i<str1.length();i++){
System.out.println("字符为====>>>"+array[i]);
}
二.
1.构造函数(构造方法,构造器):
I: 构造函数名必须和类名相同
II: 构造函数不需要返回值类型
III:每一个类中都有一个默认的构造函数,若定义了一个构造函数则无默认的构造函数
例如:
public class Student{
//设置名字属性
private String name;
//构造函数
public Student(String name){
this.name = name;
}
}
2.方法重载
方法重载的条件:
I: 方法名相同
II:方法中的参数和类型不同
例如:
public class Student{
//设置名字属性
private String name;
//设置年龄属性
private int age;
public Student(String name){
this.name = name;
}
//方法重载
public Student(String name,int age){
this.name = name;
this.age = age;
}
}
三.
1.登陆界面的开发
常用的swing组件和布局
JFrame 窗体类
JPanel 面板类
JLable 标签类
JMenuBar菜单栏类
JMenu 菜单项类
JMenuItem 菜单子选项类
JComboBox 下拉列表框类
JCheckBox 复选框类
JTextArea 多行文本域类
JTextField 单行输入框类
JButton 按钮类
JPassWord 密码输入框类
FlowLayout 流式布局
GridLayout 网格布局
BorderLayout边框布局
其中 边框布局为界面默认的布局
2.界面开发的一般格式
//定义一个关于界面开发的类
public class Frame{
//主函数
public static void main(String [] args){
//实例化对象
Frame f = new Frame();
f.init(); //调用方法
}
public void init(){
//实例化一个界面对象
javax.swing.JFrame jf = new javax.swing.JFrame();
//设置主题
jf.setTitle("简单界面");
jf.setSize(300,200); //设置界面的大小
javax.swing.FlowLayout f1=new javax.swing.FlowLayout();
jf.setLayout(f1); //设置界面为流式布局
jf.setLocationRelativeTo(null);//设置窗体居中显示
if.setDefaultCloseOperation(3); //点击关闭按钮退出
//实例化一个登录按钮对象
javax.swing.JButton button=new javax.swing.JButton("登录");
jf.add(button); //登录按钮添加到窗体
jf.setVisible(true);//设置界面可见
}
}
jf.setVisible(true);一定要在界面上的组件添加完毕后加入,否则界面上没有该语句之后的特征.
四. 类的继承
1.继承的优点:
当所要实例化的对象较多且具有相同的特征时能节省代码
提高程序的扩展性
2.子类可从父类继承什么
当子类与父类在同一个包下时:子类可以继承父类中公有,受保护的,默认的属性和方法;但父类中私有的属性和方法,构造函数不能被子类继承.
当子类与父类不在同一个包下时: 子类可以从父类中继承公有的属性和方法;受保护的,默认的,私有的属性和方法以及构造函数不能被子类继承.
3.继承的格式
public class 子类名 extends 父类名{
//函数体
}
4.方法的重写
子类与父类的方法的返回值类型必须相同
子类与父类的方法名,参数个数,参数类型必须相同
五.
1.接口-- 一种让子类可以重写方法的“类”.
2.接口的定义
public interface 接口名{
public static final 数据类型 变量名=值;
public 返回值类型 方法名(参数类型 参数名,...);
}
接口中只能定义常量,方法;类可以继承多个接口,接口可以继承多个接口
接口不能实例化对象
3.接口的实现
public class 类名 implements 接口名{
//实现接口中的所有方法
}
当类继承接口时必须实现接口中的所有的抽象方法
4.抽象类:抽象类是介于类与接口之间的特殊的类
5.抽象类的定义
public abstract 抽象类名 {
//定义类中的任何方法,常量,构造函数
//定义接口中的常量和抽象方法
//抽象方法的定义
public abstract 返回值类型 方法名(参数类型 参数名,...);
}
抽象类不能实例化对象
6.事件机制
事件源: 发生动作的组件
监听器类型:设置事件源监听什么类型的动作
事件处理者:根据监听器获得的信息处理事件
常用的事件监听器基本上位于java.awt.event 包下,以Listener结尾
常用的监听器有:
ActionListener
MouseListener
MouseMotionListener
KeyListener
六. 1.画图板实现步骤
设置窗体及其属性
给窗体添加按钮
给按钮添加监听器
给窗体添加鼠标监听器
实现画图
2.实现画图板的功能时较难实现的是曲线,多边形和喷枪的功能
画曲线的方法:
重要的是鼠标经过的每一个x2,y2坐标又重新变为x1,y1这样才能实现曲线的画法
在mouseDragged()监听器中得知鼠标点击的是画曲线时可以用下列算法
x2 = e.getX();
y2 = e.getY();
g.drawLine(x1,y1,x2,y2);
x1 = x2;
y1 = y2;
画多边形的方法:
画多边形时应记住画图形的起始点,这样才能保证闭合多变型,且将一条直线的结尾点变为下一条线的起始点
首先定义4个变量来储存多边形的起始点和一条线的结束点坐标,并定义一个布尔型变量来判断,画的是否为第一条线
假设定义如下变量
int startx1,starty1,endx2,endy2;
boolean s = true;
在mouseDragged()监听器中得知鼠标点击的是画多边形时可以用下列算法
x2 = e.getX();
y2 = e.getY();
if(s){
g.drawLine(x1,y1,x2,y2);
startx1 = x1;
starty1 = y1;
s = false; //保证可以画第二条线
}
else{
//设置误差的大小,使最后一条线的结尾点坐标与第一个点的坐标差的绝对值小于该误差时封闭图形
if(Math.abs(startx1-x2)<6&&Math.abs(Starty1-y2)<6){
g.drawLine(x2,y2,startx1,starty1);
}
//画除了第一与最后一条线之外的其余线段
else{
g.drawLine(endx2,endy2,x2,y2);
}
}
endx2 = x2;
endy2 = y2;
画喷枪的方法:
重要的是在一个区域内产生一系列的随机点
可以用一个产生随机数的类定义一个方法
// 实例化一个产生随机数的对象
java.util Random rand = new java.util.Random();
//设置鼠标所点击的的点的周围区域的大小
int value = 6;
//设置鼠标点击区域产生随机数的多少
for(int i=0;i<9;i++){
//在边长为value的正方形内产生随机坐标点
int xValue = rand.nextInt(value);
int yValur = rand.nestInt(value);
//起始点与结束点相同画出的为点,固定坐标点加上一个随机数产生一个 随机坐标点
g.drawLine(getX2()+xValue,getY2()+value,getX2+xValue,getY2+yValue);
}
分享到:
相关推荐
内容概要:本文主要探讨了SNS单模无芯光纤的仿真分析及其在通信和传感领域的应用潜力。首先介绍了模间干涉仿真的重要性,利用Rsoft beamprop模块模拟不同模式光在光纤中的传播情况,进而分析光纤的传输性能和模式特性。接着讨论了光纤传输特性的仿真,包括损耗、色散和模式耦合等参数的评估。随后,文章分析了光纤的结构特性,如折射率分布、包层和纤芯直径对性能的影响,并探讨了镀膜技术对光纤性能的提升作用。最后,进行了变形仿真分析,研究外部因素导致的光纤变形对其性能的影响。通过这些分析,为优化光纤设计提供了理论依据。 适合人群:从事光纤通信、光学工程及相关领域的研究人员和技术人员。 使用场景及目标:适用于需要深入了解SNS单模无芯光纤特性和优化设计的研究项目,旨在提高光纤性能并拓展其应用场景。 其他说明:本文不仅提供了详细的仿真方法和技术细节,还对未来的发展方向进行了展望,强调了SNS单模无芯光纤在未来通信和传感领域的重要地位。
发那科USM通讯程序socket-set
嵌入式八股文面试题库资料知识宝典-WIFI.zip
源码与image
内容概要:本文详细探讨了物流行业中路径规划与车辆路径优化(VRP)的问题,特别是针对冷链物流、带时间窗的车辆路径优化(VRPTW)、考虑充电桩的车辆路径优化(EVRP)以及多配送中心情况下的路径优化。文中不仅介绍了遗传算法、蚁群算法、粒子群算法等多种优化算法的理论背景,还提供了完整的MATLAB代码及注释,帮助读者理解这些算法的具体实现。此外,文章还讨论了如何通过MATLAB处理大量数据和复杂计算,以得出最优的路径方案。 适合人群:从事物流行业的研究人员和技术人员,尤其是对路径优化感兴趣的开发者和工程师。 使用场景及目标:适用于需要优化车辆路径的企业和个人,旨在提高配送效率、降低成本、确保按时交付货物。通过学习本文提供的算法和代码,读者可以在实际工作中应用这些优化方法,提升物流系统的性能。 其他说明:为了更好地理解和应用这些算法,建议读者参考相关文献和教程进行深入学习。同时,实际应用中还需根据具体情况进行参数调整和优化。
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_8.doc.zip
内容概要:本文介绍了基于灰狼优化算法(GWO)的城市路径规划优化问题(TSP),并通过Matlab实现了该算法。文章详细解释了GWO算法的工作原理,包括寻找猎物、围捕猎物和攻击猎物三个阶段,并提供了具体的代码示例。通过不断迭代优化路径,最终得到最优的城市路径规划方案。与传统TSP求解方法相比,GWO算法具有更好的全局搜索能力和较快的收敛速度,适用于复杂的城市环境。尽管如此,算法在面对大量城市节点时仍面临运算时间和参数设置的挑战。 适合人群:对路径规划、优化算法感兴趣的科研人员、学生以及从事交通规划的专业人士。 使用场景及目标:①研究和开发高效的路径规划算法;②优化城市交通系统,提升出行效率;③探索人工智能在交通领域的应用。 其他说明:文中提到的代码可以作为学习和研究的基础,但实际应用中需要根据具体情况调整算法参数和优化策略。
嵌入式八股文面试题库资料知识宝典-Intel3.zip
嵌入式八股文面试题库资料知识宝典-2019京东C++.zip
嵌入式八股文面试题库资料知识宝典-北京光桥科技有限公司面试题.zip
内容概要:本文详细探讨了十字形声子晶体的能带结构和传输特性。首先介绍了声子晶体作为新型周期性结构在物理学和工程学中的重要地位,特别是十字形声子晶体的独特结构特点。接着从散射体的形状、大小、排列周期等方面分析了其对能带结构的影响,并通过理论计算和仿真获得了能带图。随后讨论了十字形声子晶体的传输特性,即它对声波的调控能力,包括传播速度、模式和能量分布的变化。最后通过大量实验和仿真验证了理论分析的正确性,并得出结论指出散射体的材料、形状和排列方式对其性能有重大影响。 适合人群:从事物理学、材料科学、声学等相关领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解声子晶体尤其是十字形声子晶体能带与传输特性的科研工作者,旨在为相关领域的创新和发展提供理论支持和技术指导。 其他说明:文中还对未来的研究方向进行了展望,强调了声子晶体在未来多个领域的潜在应用价值。
嵌入式系统开发_USB主机控制器_Arduino兼容开源硬件_基于Mega32U4和MAX3421E芯片的USB设备扩展开发板_支持多种USB外设接入与控制的通用型嵌入式开发平台_
e2b8a-main.zip
少儿编程scratch项目源代码文件案例素材-火柴人跑酷(2).zip
内容概要:本文详细介绍了HarmonyOS分布式远程启动子系统,该系统作为HarmonyOS的重要组成部分,旨在打破设备间的界限,实现跨设备无缝启动、智能设备选择和数据同步与连续性等功能。通过分布式软总线和分布式数据管理技术,它能够快速、稳定地实现设备间的通信和数据同步,为用户提供便捷的操作体验。文章还探讨了该系统在智能家居、智能办公和教育等领域的应用场景,展示了其在提升效率和用户体验方面的巨大潜力。最后,文章展望了该系统的未来发展,强调其在技术优化和应用场景拓展上的无限可能性。 适合人群:对HarmonyOS及其分布式技术感兴趣的用户、开发者和行业从业者。 使用场景及目标:①理解HarmonyOS分布式远程启动子系统的工作原理和技术细节;②探索该系统在智能家居、智能办公和教育等领域的具体应用场景;③了解该系统为开发者提供的开发优势和实践要点。 其他说明:本文不仅介绍了HarmonyOS分布式远程启动子系统的核心技术和应用场景,还展望了其未来的发展方向。通过阅读本文,用户可以全面了解该系统如何通过技术创新提升设备间的协同能力和用户体验,为智能生活带来新的变革。
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_1.zip
少儿编程scratch项目源代码文件案例素材-激光反弹.zip
内容概要:本文详细介绍了COMSOL相控阵检测技术在有机玻璃斜楔上放置16阵元进行工件内部缺陷检测的方法。首先阐述了相控阵检测技术的基本原理,特别是通过控制各阵元的激发时间和相位来实现声波的聚焦和扫描。接着,重点解析了横孔缺陷的反射接收波,解释了波的折射现象及其背后的物理原因。最后,通过实例展示了COMSOL模拟声波传播过程的成功应用,验证了该技术的有效性和准确性。 适合人群:从事固体力学、无损检测领域的研究人员和技术人员,尤其是对相控阵检测技术和COMSOL仿真感兴趣的读者。 使用场景及目标:适用于需要精确检测工件内部缺陷的研究和工业应用场景,旨在提高检测精度和效率,确保产品质量和安全。 其他说明:文中提到的声速匹配现象有助于理解波在不同介质间的传播特性,这对优化检测参数设置有重要意义。
少儿编程scratch项目源代码文件案例素材-极速奔跑者.zip
嵌入式八股文面试题库资料知识宝典-微软_interview.zip