1. 类:公共的属性(特征),公共的方法(动作)
2. 类和对象:
(1)类是整体,是抽象,是概念
(2)对象是个体,是具体,是实例
3. 类的定义
class类名{
公共的属性
公共的方法
}
4. 对象的定义
类 对象=new 类的构造方法()
5.构造方法:
(1)特征:a.没有类型 b.方法名与类名完全一致
(2)用途:读新分配的内存空间赋值
(3)特殊情况:当类的定义中没有任何一个构造方法,系统会提供一个默认的构造方法。
空参的构造方法:每一个属性都赋值为默认值。
int 0
double 0.0
boolean false
char '\0'
string null
变量的类型:局部变量,类的成员变量
局部变量:方法内定义的变量,(1)方法的形参(2)方法内定义的变量
类的成员变量:类中定义的变量
(1)static:静态变量,类变量。
(2)实例变量,对象变量
变量和方法的调用问题
1.在实例方法中,可以直接调用实例变量,也可以直接利用调用类变量。
2.在类方法中,可以直接调用类变量,但是不能调用实例变量。
3.在实例方法中,可以直接调用其他的实例方法,也可以调用类方法。
4.在类方法中,可以直接调用其他的类方法,但是不能调用实例方法。
对象能调用实例变量,也可以调用类变量,也可以调用实例方法,也可以调用类方法
类能够调用类变量,也可以调用类方法,但是不能调用实例变量和实例方法
二 、封装(实例变量私有化、getter和setter)
实例变量私有化:
class Student{
private String stuID;
private String stuName;
private int stuAge;
}
1、private 私有 :仅在本类有效。
2、默认:在本类、本包中的其他类。
私有的好处:
(1)保护内部的数据不被外界随意访问和修改
(2)简化操作。
封装后,一般要对外提供接口,方便操作。
这个接口就是Getter和Setter。
1、Getter:访问器的特征
(1)一get开头。
(2)有返回值,所以方法有类型。
(3)方法没有参数。
2、Setter:设置器的特征
(1)一set开头。
(2)方法的类型为void。
(3)方法有参数。
面向对象的三大特征
1、封装
2、继承
3、多态
继承:
class 子类 extends 父类{
//定义自己特有的属性和方法
}
继承的效果:子类拥有了父类的所有的方法和属性、但是结构方法除外
构造方法:
当继承存在时,子类的构造方法第一句一定是super()。
它体现一种分工的思想
三、super的三种使用场合
1、super();表示调用父类的构造方法
2、super。实例变量:调用父类中的实例变量
3、super。实例方法:调用父类中的实例方法
方法的重载
1、方法名相同,类型相同,但是参数不同。
2、所谓参数不同:
(1)个数不同;
(2)类别不同;
方法的重写(覆盖)
1、只有继承存在时,才有可能出现方法的重写。
父类和子类的关系是is-a的关系
人 对象=new Student();
人 对象=new Worker();
人 对象=new 之类)();
3.方法是一子类为准;属性是以父类为准
4.在面向对象语言中,对象之间的交互通过消息实现
四、多态
1.静态的多态:Person p=new Student();
2.动态的多态:p.show()
3.多态的目的:
同一个动作,不同类型的对象,作出不同的反映;
规律:
(1)方法的重写存在时,父类声明,子类构造时
对象.方法()//是以子类的为准
(2)对象.变量//是以父类为准
五、抽象类
1.一般修饰方法和类
(1)修饰方法时被成为抽象方法
(2)抽象类时被称为抽象类
2.抽象方法和抽象类的关系
(1)抽象方法所在的类,一定是抽象类
(2)抽象类中可以没有抽象方法
3.抽象类不能生成对象
一般抽象类都有子类,子类实现了父类的抽象方法后,就可以是非抽象类,就可以生成对象
六、接口
1.一般一个类为了扩展功能,优先实用接口
2.接口:是规范,是标准
3.定义:
interface接口名(){//1.定义常量 //2.定义方法}
注意:接口中的方法都是public,abstract
接口的实现:
class 类名 implements 接口名{//重写接口的方法}
(接口的现实意义:
国家或行业制定制度、制定标准
公司/企业来具体实现)
4.抽象类与接口的对比
(1)相同点:都能扩充子类的功能
(2.1)不同点:抽象类中可以定义实例变量,类变量,接口中只能定义静态、公共的常量。
(2.2)抽象类中可以定义正常的实例方法,类方法,接口中只能定义public、abstract的方法
(3)子类继承抽象类,改变子类的体系结构;
子类实现接口,不会改变原有的体系结构。
(4)接口更具有通用性和普遍性
七、集合
List list=new List();错误的
1.List的集合唯一一个有序的集合;
2.List集合可以添加重复的元素
3.size();得到List集合对象的长度,元素个数;
get(int index);得到index下标对应元素;
add(Object o);在List集合的尾部添加一个新的元素;
add(int inde,Object o);在I下标插入元素o
addAll(List other);添加other中所有的元素。
addAll(int index,List other):插入。
contains(Object o):判断集合中是否包含元素o。
clear();清空List集合
八、GUI
java.awt包和javax.swing包
1.java.wat包:重量级组件,包括按钮,文本框,列表框,字体,颜色,布局等等这些都在awt包中而swing中没有
窗体:Frame类
构造方法
Frame f=new Frame();要用import
Button button1=new Button("登陆");
button1.setFont(new Font("宋体",Font.PLAIN,60));
//设置标题
f.setTitle("我的第一个窗体");
//设置大小
f.setSize(400,300);
//f.setSize(new Dimension(400,300));
//设置窗体的位置
f.setLocation(new Point(300,300));//等价于f.setLocation(300,300)
//添加其它的组件
f.add(button1);
//设置窗体可见
f.setVisible(true);
2.java.swing包:轻量级组件,包括按钮,文本框
3.窗体的布局
窗体的默认布局是:
BorderLayout 边框布局
边框布局把窗体分为五个部分,分别是上北下南,左西右东,中
North,South,East,West,Center
流式布局
FlowLayout
特点:先把第一个空间放在第一行的中央,以此类推,知道第一行占满,然后第二行参照第一行排列;
网格布局
GridLyout(行数,列数)
特点:把窗体划分为若干行,若干列,从第一行第一列开始放控件,以此类推
Label(标签)和JLabel
构造方法
文字的修改:setText(String text)运行期间不能被修改
TextField 文本框和JTextFieid
内容的修改:setText(String text)
内容的获取:getText
null布局
没有布局,但是要求每个组件都必须要设置
setBounds(x(左上角的宽),y(左上角的长),width(长),heigth(宽))方法
事件:event
java中事件是通过接口来实现的。
比如ActionListener接口中定义了一个方法actionperformed(ActionEvent e)
事件的监听情形有四种
第一种:警察模式。()
第二种:自救模式。
第三种:保安模式。
第四种:秘书模式。
如何关闭窗口
匿名内部类的表现形式
new 接口名(){
...// 类的定义
}
对话框:JOptionPane
showMessageDialog():消息对话框
parentCompanent:父窗体
showConfirmDialog():确认对话框
message:提示内容
title:对话框标题
option_Type:按钮选项
常用的option_Type主要有:
JOptionPane.YES_OPTION JOptionPane.NO_OPTION
JOptionPane.YES_OPTION JOptionPane.CANCEL_OPTION
JOptionPane.YES_OPTION JOptionPane.OK_OPTION
JOptionPane.YES_OPTION JOptionPane.OK_CANCEL_OPTION
JOptionPane.YES_OPTION JOptionPane.YES_NO_OPTION
message_type:消息类型
JOptionpane.PLAIN_MESSAGE:平面消息
JOptionpane.INFORMATION_MESSAGE:信息消息
JOptionpane:WARNING MESSAGE:警告消息
JOptionpane:QUESTION_MESSAGE:问题消息
JOptionpaneERROR_MESSAGE:错误消息
JDBC编程的详细步骤
1.注册数据库的驱动程序
Class.forName(“包名.类名”);
比如:Class.forName("com.mysql.jdbc.Driver//驱动")//展开jar,第一个就是包名
2.创建连接对象.(需要引入一个包java.sql.*)
Connection
conn=DruverManger.getConnection(url.user.password);
getConnection(url,user,password)
3.创建语句
Statement st=conn.createStatement();
4.执行这条语句
(1)如果是查询语句
ResultSet rs=st.executeQuery("select语句");然后遍历re
(2)如果是增上盖语句
int row=st.executeUpdate("insert/update/")
关闭服务器
conn.close();
项目的创建步骤(一)
1.新建一个java project,将其命名
2.选择该工程,点击右键,新建一个Folder,命名为lib(依赖的包)jar
3.吧myssql的jar包,赋值在lib中
4.崩工程要营业这个jar包,选中工程,点击右键,选择properties,找到java build
path选项,找到libaries,点击add jars,选择本工程的lib的jar文件,点击OK
项目创建步骤(二)
项目创建步骤(三)
项目的结构
1.beans(entity):主要用来创建实体类,
2.dao:主要用来创建操作数据库的接口,
3.impl:主要用来创建实现接口的类的定义,
4.service:主要是用来定义业务逻辑类,
5.ui:用来定义图形界面类,
6.util:用来定义本项目中所有的公共的,全局的帮助类