4 依赖倒置原则(重要) 核心是面向接口编程 设计原则5 接口分离原则 建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少 设计原则6 迪米特法则 尽量降低类与类之间的耦合 两个类之间不必彼此通信...设计原则7 组合聚合复用原则 优先使用对象组合,而不是类继承(要尽量使用合成和聚合,尽量不要使用继承) 类与类之间的关系 1 继承、实现 类与类之间的关系 2 依赖和关联 依赖关系 一个类A使用到另一个类...但是类B的变化会影响到类A 类B作为类A的方法参数(或者==局部变量==存在) 关联关系 比依赖关系强,必然的,长期的,强烈的 类B作为==成员变量==形成存在于类A中 一对一、一对多、多对多关系 package...oop2.demo03; import java.util.ArrayList; import java.util.List; public class Test03 { } //人类 class People...{ //体现了人类与身份证类一对一的关系 private Sfz s = new Sfz(); } //身份证类 class Sfz{ } //============================
首先,设置窗体界面: ?...,这里举的例子比较简单,只有一个变量,如果设计的是一个较为复杂的窗体,变量很多的情况下,一旦需要复用窗体到其他程序,这时候,还要把普通模块中的变量一起复制过去。...所以,上面这种设计是不合适的,作为这个只需要对外传递某些数据的窗体来说,它的功能应该仅仅是对外传递数据,不依赖外部变量,不包含逻辑代码,它就是一个独立的对象,能够对外提供接口读取数据,这就是类了。...窗体本身就是一种特殊的类,只是它多了一个交互界面,类的那些特性窗体是都具有的,所以,根据类的设计方法,给这个窗体设置一个可以读取的属性UserName: '设置只读属性 Property Get UserName...外部普通模块调用的时候,就像是使用一个普通的类一样: Sub TestUserFrom() Dim f As FInputName '创建窗体实例 Set f = New
由于BaseForm一般需要在大多数的窗体中,而新增编辑数据窗体一般较为特殊一点,可以再增加一个基类BaseEditForm,用来做新增编辑窗体的基类,该基类继承自BaseForm类,工程代码如下所示。...编辑以及新增我们整合在一个窗体中,先看看该基类的设计视图,我们在其中添加了3个按钮(常用的添加、保存、关闭按钮)。 ?...窗体的代码我大类采用了可重载的虚函数,留给子类窗体进行实现不同的处理操作,如窗体加载显示操作、显示数据到控件的操作、保存、新增等函数都是需要实现的,而调用逻辑以及一些通用的处理,则在基类BaseEditForm...{ this.DialogResult = DialogResult.Cancel; this.Close(); } 其中值得介绍的是,窗体的控件数据清空在基类窗体中通过遍历实现了通用的数据清空操作...另外,基类窗体还实现了Tab键的转换,这个思路来源于即日嘎拉的代码,但由于是基类实现,有些不同,他的放在每个具体的子类中,因此通用性有些限制。
开头说一下,如果使用 import java.awt.*; import javax.swing.*; 出现错误,请查看: 解决无法使用java.awt.和javax.swing. 1.JFrame窗体...package number; import java.awt.*; import javax.swing.*; public class Xuexi extends JFrame{ public...2.JDIalog窗体 import java.awt.*; import javax.swing.*; public class windowpr extends JDialog{ public windowpr...(MyFrame frame) { //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题和类型 super(frame,"第一个JDialog窗体",true); Container...} } //弹出对话框 import java.awt.event.*; import java.awt.*; import javax.swing.*; public class MyFrame
package expression; import java.awt.Color; import java.awt.Container; import javax.swing.*; public...class Demo extends JFrame{//继承父类 public Demo(){ setVisible(true);//设置窗体可见 setTitle("窗体标题");.../*窗体关闭规则 * EXIT_ON_CLOSE 关闭窗体,并停止程序 * DO_NOTHING_ON_CLOSE 操作对窗体无效,也不会停止运行 * HIDE_ON_CLOSE 隐藏窗体...//f.setSize(400, 200);//设置窗体大小 单位:像素 //f.setLocation(200, 200);//设置窗体坐标 单位:像素 setBounds(200,200,400,200...);//设置窗体坐标和大小 Container c = getContentPane();//获取窗体容器 c.setBackground(Color.WHITE);//设置背景颜色
为何要写这篇文章 这里带你引入java各个方向的知识 但还是需要更深层次的学习 引入但不深入 java引入 基本数据类型和包装数据类型的区别 java是面向对象的编程语言 基本数据类型没有对象的特征...JVM Java Virtual Machine Java 虚拟机,简单看成⼀个操作系统,java程序会⾸先被编译 为.class的字节码,根据字节码指令进⾏识别并调⽤上层操作系统 JRE Java...synchronized Java中public class与class的区别 一个.java文件中只能有一个类被public修饰 否则报错 说说你对java数据类型的认识 分为基本数据类型和引用数据类型...除非声明成抽象类 变量默认public static final 方法默认public abstart 不可以有方法体 jdk8之后加入新特性 static和default 说一下多态 java...⽗类(即接⼝)的default⽅法,则在调⽤default⽅法时,使⽤⽗类(接口) 定义的default⽅法逻辑 阿里p6后端工程师/技术经理的java集合框架List了解多少 说下Vector和ArrayList
在IE的右下角自动弹出一个通知窗口,几秒后慢慢消失,这个现在是很常见的js代码实现的功能,但是,我希望能够把这个功能集成起来,使用时尽量简化,所以尝试作了一个类,专门来完成这个功能。 ...首先,分析弹出窗体的功能。因为这是js的功能,而且js代码是可见的,所以,如果有别人实现的好点,可以直接就拿来使用了。...2、弹出的窗体。 3、样式代码 自己写了个测试页面,测试了这些功能,发现都没有问题。支持弹出,自动隐藏,还支持拖放窗口,总之比较强。 ...于是思路就定了,制作一个类NoteWindow,有一个静态的(最近特别喜欢用这个,特别是在一些辅助性的类中)函数ShowNote,直接就将这个代码就插入了。
主窗体程序: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data...解决办法: 将窗体作为参数传入类,然后可以根据属性来对其进行相应的操作 实例修改如下: 主窗体程序: using System; using System.Collections.Generic;
Java中GUI的默认窗体布局 常见的窗体布局方案
今天说一说java中如何创建窗体,希望能够帮助大家进步!!!...首先,我们看一下窗体都有哪些要素,以windows下的【记事本】为例:我们新建一个记事本,会看到标题,大小,位置,关闭方式 所以我们用代码创建一个窗体,也需要这些要素,前提:在Java中创建窗体,我们需要继承...【JFrame】类,导入JFrame包 在线学习视频教程推荐:java学习视频 第二步,我们给窗体设置标题(PS:对窗体的一些设置,最好写在构造方法里,养成良好的习惯),设置标题使用setTitle(...)方法 第三步,给窗体设置大小和位置,我们可以使用setBounds()【setBounds()传入4个参数,前两个是窗体的位置,后两个是窗体的 大小】,将大小和位置一起设置,也可以使用setLocation...()设置窗体的位置,使用setSize()设置窗体的大小 注意:窗体的位置,是以电脑屏幕左上角为原点(0,0)的坐标系 第四步,设置窗体的关闭方式,使用setDefaultCloseOperation
假设项目目录结构是: common --dateutils.py scrip --report.py 当我们在report.py中直接使用 from dateu...
小提示:选中左侧目录,可快速找到所需内容 本系列博客地址:传送门 一、本节目标 窗体管理类WindowManager是用来做什么的?...这是真正的给我们使用的窗体管理类,我们想打开一个窗体,就调用它好了。...比如: WindowManager.Instance.OpenWindow(WindowType.StoreWindow); 我们之前写了很多接口,但哪些窗体要用到这些接口脚本呢?...所以这脚本还用于初始化我们要用到的窗体,即我们要将用到的窗体在这添加进去。 二、窗体管理类:WindowManager 在Assets/MVCLibrary下创建该脚本。...windowDic.Add(WindowType.StoreWindow, new StoreWindow()); } public void Update() { //实现基类BaseWindow
2.类的引入 C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。...类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数。...5.类的作用域 类定义了一个新的作用域,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。...,称为类的实例化 类是对对象进行描述的,是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它; 比如:入学时填写的学生信息表,表格就可以看成是一个类,来描述具体学生信息...C++中通过引入this指针解决该问题 即:C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数this,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作
如果觉得写的还行,请点个 star 支持一下吧 目录 https://www.cnblogs.com/bfyx/p/11364884.html 准备工作 前面介绍了那么多控件(虽然重要的文本框还没有出现),终于轮到窗体上场了...首先我们需要一个基类窗体,所有的窗体都将继承基类窗体 基类窗体需要实现哪些功能呢?...summary> 42 private bool _isShowMaskDialog = false; 43 /// 44 /// 蒙版窗体...49 /// 50 [Description("是否显示蒙版窗体")] 51 public bool IsShowMaskDialog...用处及效果 一般来说,这个基类窗体不直接使用,不过你高兴用的话 也是可以的 ,比如设计个圆角窗体什么的
问题描述: 用java做一个图形化界面的程序,在Eclipse上运行后中文显示乱码,如下图所示: ?...该方法只对需要运行的java代码有效。 如果该程序在java控制台还输出数据的话,依旧会出现乱码。
Calendar类概述 /*** java.util.Calendar类:是一个日历类 * Calendar类是一个抽象类,里边提供了很多操作日历字段的方法 * 如:YEAR、 MONTH、 DAY OF...MONTH、HOUR * * Calendar类无法直接创建对象使用,里边有一个静态方法叫 getInstance(), * getInstance()方法返回了 Calendar类的子类对象 * static...String[] args) { Calendar calendar=Calendar.getInstance(); System.out.println(calendar); } } Calender类的常用成员方法...成员方法的参数:intfield:日历类的字段,可以使用 Calendar类的静态成员变量获取public static fin 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn
引入CountDownLatch类 CountDownLatch类的具体实例 CountDownLatch小结 引入CountDownLatch类 Java在JDK1.5之后引入了CountDownLatch...类。...这个类是一个同步辅助类。用于一个线程等待多个操作完成之后再执行,也就是这个当前线程会一直阻塞,直到它所等待的多个操作已经完成。...package CountDown; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit...package CountDown; import java.util.concurrent.TimeUnit; public class Participant implements Runnable
概述 在Java 8中引入的forEach循环为程序员提供了一种新的,简洁而有趣的迭代集合的方式。...基础知识 public interface Collection extends Iterable Collection 接口实现了 Iterable 接口,而 Iterable 接口在 Java...System.out.println(name); } 我们可以使用forEach写这个 : names.forEach(name -> { System.out.println(name); }); 匿名类...要执行的操作包含在实现Consumer接口的类中,并作为参数传递给forEach 。 所述消费者接口是一个功能接口(具有单个抽象方法的接口)。它接受输入并且不返回任何结果。...让我们看看我们将使用forEach方法的另外2种最流行的方式: Lambda表达式 Java 8功能接口的主要优点是我们可以使用Lambda表达式来实例化它们,并避免使用庞大的匿名类实现。
流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不 是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。...啥话少说直接上代码: //创建一个list类 里面包含一个对象Dish且创建Dish List menu = Arrays.asList( new Dish("pork", false...Dish("prawns", false, 300, Dish.Type.FISH), 5 new Dish("salmon", false, 450, Dish.Type.FISH) ); Dish类的定义是
Step1: 新建一个java web项目 ?...-- 解决中文乱码 begin --> <bean id="utf8Charset" class="<em>java</em>.nio.charset.Charset" factory-method...前后台交互传递数据时会出现中文乱码,其配置必须放在 上面 2、对项目静态资源的处理,例如引入的
领取专属 10元无门槛券
手把手带您无忧上云