`
simple.plan
  • 浏览: 3029 次
  • 性别: Icon_minigender_1
  • 来自: 湘西
最近访客 更多访客>>
社区版块
存档分类
最新评论

6.24~6.29c++和java的技术总结

 
阅读更多

前面图那么多槽,吐的有点慌,咱们写程序的还是要脚踏实地的往前迈进,不废话,直接上:

 

1.c++里面int类型的变量一定要去初始化,不然你就会和一样悲剧,上代码:

 

 //查看各个学生的成绩
 cout<<"查看各个学生的成绩:"<<endl;
 for(int i=0;i<N;i++){
  Math+=stu[i].score[0];
  Chinese+=stu[i].score[1];
  English+=stu[i].score[2];
  History+=stu[i].score[3];
  Politics+=stu[i].score[4];
 }
 //各门均分
 double Mathaver = Math/5;
 double Chineseaver =Chinese/5;
 double Englishaver = English/5;
 double Historyaver = History/5;
 double Politicsaver = Politics/5;
 //输出各门总成绩和均分
 cout<<endl;
 cout<<"数学总分:    "<<"语文总分:    "<<"英语总分:   "<<"历史总分:   "<<"政治总分:   "<<endl;
 cout<<Math<<"        "<<Chinese<<"          "<<English<<"         "<<History<<"          "<<Politics<<endl;

 

说明:前面定义了几门成绩为int型,好输出的结果是-6923523什么的,你以为是地址,难倒是没有取到变量的值?不是,每个学生的没门成绩我都测试过了都是有效的整数值。其实问题出在Math 这些歌int型没有初始化就直接+=xxxx

,c++中 int型变量没有初始化默认为最小的值那就是-xxxxxxx,好,然后你拿它去和小的可怜的成绩加减不出个“地址”来吓吓你这个初学者才怪

 

2.之前写队列的时候遇到一个很好的数组copy函数很牛逼的,一显高端:

上代码:

系统提供的数组copy函数:
如果参数 src 和 dest 引用相同的数组对象,则复制的执行过程就好像首先将 srcPos 到 srcPos+length-1
位置的组件复制到一个带有 length 组件的临时数组,
然后再将此临时数组的内容复制到目标数组的 destPos 到 destPos+length-1 位置一样。
ex:
System.arraycopy(srcA,0,destA,0,srcA.length);

 

3.常用的一些类,比较舒服,我是这么觉得的:

Scanner  Random 这两个调用的时候都有点像,难倒优秀的类有共性?

 注意Scanner的作用是从命令行中获取代码,所以它一般的构造函数都有个参数(System.in)好像系统告诉你:快多点代码进来和我作伴吧

 

4. 细节的几何堆积,不解释,自己欣赏

敢说集合这么伟大的发明不重要,什么东西的存在离得开容许他存在的容器?

大集合的常用实现类:
Set: HashSet() , TreeSet()
List: Vector() , ArrayList()
Map:HashMap()  , Hashtable()

map集合我也玩了一下,里面要用到接口调用方法的,比如collection能iterator() size() 等等

 返回出一些必需的数据。我再次震精了,呵呵,厉害的接口敢直接掉方法牛的一逼
注意的是:map集合中,key和value的分别是以两种不同的对象保存的,然后key的值是唯一的,value的值不是唯一的

 

5.再讲2个细节我就讲大东西了:

①组件在窗体布局的一些方法:
 this.add(xxx,boarderlayout.east)   5个方位 east west center north south 补一下英语
 xxx.setbounds(x,x,x,x)   坐标和大小

我敢说setbounds这方法在swing界面布局谁人能出其右,坐标精确定位,大小自由调整,一个函数敲定,一览众山小。
②setsize() 和setpreferredsize()的区别:

之前我就操了,建立一个janel对象,设置了各种大小不起作用,还是分布在窗体的一个角落里啜泣;

原来他是轻量级的,只能有setpreferredsize()方法,但是它为什么又这么贱?放着个setsize()不能用?

我反正是搞不清楚。。。记住吧少年!

setsize() for frame ok?

setpreferredsize() for small thing ok?

 

6.大餐:讲讲这周我反复烦的错误:

一、大家知道g是什么东西?

看下面一一道来:

    private Graphics g;用来干吗?声明一个画布对象。画布是什么

    不是说好了java世界万物皆对象么?

    那好g就是创建的一个画布的对象,想想油画的画画在哪里?

    (如果x是窗体:

      x.setvivuable(true);

    )

    g = x.getGraphics();

     g就是个对象别想多了,这上面不是给g赋值吗?

     只不过赋值的是抽象的一个画布,x的画布!

 

关于这个画板我有点说的:

public void showUI extends JFrame(){

  JFrame jf = new JFrame();

}

public void paint(Graphics g){

  super.paint(g);

}

你可能已经发现了 这个不能实现重绘,为什么?

因为,有两个窗体,我重绘的是showUI窗体,然后画布是取的第二个jframe jf!

 

我又犯了类似的很多错误,比如监听加给了jframe没嫁给jpanel导致坐标出错啊,

重绘加错给了jframe 没有加给jpanel都会出现你不会得到想要的结果,事实就是这么残酷!

 

所以我想说:在你为整个界面添加什么组件以后,已经要检查一下重绘、监听等等还有一些方法的调用时候和你修改以后想要的结果对的上号

 

二、我想说一下匿名内部类:

第一次接触匿名,我是在写画板的时候,呵呵,就是最近。

我看到这个玩意比创建一个监听器类来的方便:

看:

创建监听器类的方法:

ButttonListener bl = new ButtonListener(参数)

x.add(bl)

还要让bl类去实现一个actionlistener类,多麻烦

 

看看人家匿名:x.add(new ActionListener{

   actionperformed(Event e){

 

   }

});

 

多简单!

 

我首先是记住这种格式,哦,添加监听是吧,就捞一个匿名内部类来解决

其实我看到的还不止,像boss左就给了我一种新的匿名内部类,让他还能解决重绘的那桩子事

这是画棋盘时候的调用

JPanel jpnlft = new JPanel(){
   /**
    * 重写绘制窗体的方法
    */
   public void paint(Graphics g){
    //重写绘制窗体
    super.paint(g);
    //绘制棋盘的方法,先画横线再画竖线
    for(int i=0;i<Config.rows;i++){
     g.drawLine(Config.xo,Config.y0+Config.size*i , Config.xo+(Config.columns-1)*Config.size,Config.y0+Config.size*i );
    }
    //画竖线
    for(int j=0;j<Config.columns;j++){
     g.drawLine(Config.xo+j*Config.size, Config.y0,Config.xo+j*Config.size , Config.y0+(Config.rows-1)*Config.size);
    }
   }
  };

这里我找到了匿名的几个蛮不错的定义,帮助我们更好理解和使用:

1,一个类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是覆盖。
2,只是为了获得一个对象实例,不需要知道其实际类型。
3,类名没有意义,也就是不需要使用到。

我反正是懂了,你们呢?

 

好了时间不多,人有点不舒服先3了,下期再见!

 

 

分享到:
评论

相关推荐

    CLIPS-6.24的源代码

    - **接口开发**:CLIPS提供了多种接口,如C++、Java和Python,允许与其他编程语言集成。 6. **学习与进阶** - **官方文档**:CLIPS的官方文档详尽且实用,包括用户手册、开发者指南和API参考,是学习和使用CLIPS...

    ibapda 6.24.6 以太网

    "ibapda 6.24.6 以太网"是一个专注于高速数据采集的软件,主要用于处理和分析来自以太网接口的数据流。在IT领域,数据采集是至关重要的,尤其是在工业自动化、科研、网络监控和数据分析等行业。ibapda软件通过其最新...

    数据采集软件 Iba pda 6.24.6

    数据采集软件Iba PDA 6.24.6是一款专为西门子PLC设计的高效数据收集和分析工具,特别适用于钢铁行业的设备监控。该软件的核心功能在于其高速的数据采集能力,能够实时捕获并处理来自PLC(可编程逻辑控制器)的大量...

    Jxbrowser.rar

    《JxBrowser 6.24.3:Java内嵌浏览器技术详解》 在现代软件开发中,有时候我们需要在应用程序内部集成浏览网页的功能,而JxBrowser就是一款强大的解决方案。JxBrowser是一款基于Chromium的Java库,允许开发者在Java...

    强制卸载软件Total.Uninstall.6.24.0_CHS_Pro.7z

    其6.24.0版本增加了更多优化和改进,确保在处理各种复杂卸载情况时更加稳定和高效。 2. **32位与64位兼容性** Total Uninstall 6.24.0 CHS Pro版同时支持32位和64位操作系统,这意味着无论你的计算机是哪种架构,...

    iba pda-v6.24.6

    《iba PDA-v6.24.6:高效的数据采集与故障追溯利器》 iba PDA,全称为iba Process Data Acquisition,是一款专为工业自动化领域设计的数据采集系统。这款v6.24.6版本被誉为“和谐版”,意味着它经过优化,能够更好...

    TOP2000V6.24

    电子秤软件TOP2000V6.24寺冈电子秤传秤软件

    控件DevExpress6.24

    除了这些基础控件,DevExpress6.24还可能包含其他高级组件,比如图表、报表、导航栏、工具栏等,这些都为Delphi和C++Builder开发者提供了强大的开发资源。 压缩包中的文件“Register_DevExpress_ExpressBars_Suite_...

    ibaPdaSetup_v6.24.6

    数据监控软件ibaPDA-v6.24.6 ibaAnalyzer 破解版 支持win7 32位操作系统

    黑群晖DS918+-6.24-25556全套工具包

    DS918+_6.24-25556,系统安装包,对应的引导,以及U盘刷入工具,及引导修改工具,还有网卡驱动包 需要其他版本可前往主页查看,另有918 3622 3615 3617等版本 6X和7x版本都有,7X变化挺大的UI设计更好看(仅代表...

    QT6.24 mingw_64编译QtXlsx

    Qt是一个开源的C++图形用户界面应用程序框架,被广泛用于开发桌面和移动平台的应用程序。在本文中,我们将深入探讨如何在基于Windows的系统上,使用MinGW 64位编译器(mingw_64)对Qt 6.24版本进行配置,以便编译并...

    ipykernel-6.24.0.tar.gz

    总结来说,ipykernel-6.24.0是深度学习和数据科学工作中不可或缺的工具,它提供了高效、灵活的交互式计算环境,使开发者能够更好地探索数据、构建模型,并以直观的方式呈现结果。保持ipykernel的更新,对于充分利用...

    一键装机工具 V6.24.3.1

    一键装机工具是一款功能强劲实用,集系统安装备份、分区对拷、硬盘对拷、一键分区、自动修复引导、引导编辑、自动注入Nvme补丁、整盘备份还原的装机软件。可以帮助用户快速安装新的系统,如果你已经下载系统镜像就...

    6.24中远src.zip

    很抱歉,但根据您给出的信息,"6.24中远src.zip"的描述太过简略,无法直接推断出具体包含的IT知识点。通常,"src"在IT领域中代表"源代码",可能是一个软件项目的源码目录。然而,没有更详细的信息,如编程语言、项目...

    OMRON NS-SYSTEM6.24系统软件.rar

    总结起来,OMRON NS-SYSTEM6.24系统软件是工业自动化领域的一款重要工具,它提供了全面的编程、监控和诊断功能,为用户在设计、实施和维护自动化系统时提供了极大的便利。通过GX Works3,用户可以高效地编写和调试...

    Aokecut6.24.2奥科平板切割机控制中心软件

    本文将深入探讨“Aokecut6.24.2奥科平板切割机控制中心软件”的核心特点和功能,帮助用户更好地理解和利用这一先进的工具。 首先,Aokecut6.24.2版本的控制中心软件设计精巧,无需繁琐的安装过程,也不依赖加密锁,...

    懒人计算器v3.1.6.24

    它基于ObjectArx开发,这是一个由Autodesk提供的C++开发环境,用于创建与AutoCAD紧密集成的应用程序。ObjectArx允许开发者直接访问AutoCAD的底层数据结构和API,从而能够创建功能强大且性能卓越的插件。 这款计算器...

    Java_EE_6规范中文版

    6.22 SJSTL 1.2 标准 6.23 Web Services 2.1 标准 6.24 JavaServer 2.0 标准 6.25 Java平台公共注解1.1标准 6.26 Persistence API 2.0 6.27 Bean Validation 1.0 6.28 Managed Beans 1.0 标准 6.29 Interceptors ...

    DS918 -6.24-25556引导+安装包

    "系统安装包"(DS918 _6.24-25556(系统安装包).pat)则是包含操作系统核心、应用程序和服务的文件,用于安装或更新DS918的系统软件。"亲测可用"则意味着有人已经测试过这个升级包,确认它可以正常工作,减少了用户...

    ArmadilloV6.24 最新版

    ArmadilloV6.24 最新版09第一壳,绝对是目前最新的版本 大名鼎鼎

Global site tag (gtag.js) - Google Analytics