1类的概念类:对一类实体的集合特点的综合抽象概念
对象:能在生活中摸得到看得到的实体,实实在在的物体
2关系的定义
类与对象的关系:是一个具体和抽象的关系
3人的特征跟行为
属性:身高、体重、年龄、、、、、、
行为:吃饭,说话,走路、、、、、、
例子
人在吃饭:人是个抽象的,一个不存在的概念,所以是个错误的说法
小明在吃饭: 小明具体指出了实体对象,所以是正确的
4面向对象的思维
会根据类来创建对象
例:方法定义
Public void ad(){
}
返回值类型:表示这个行为的执行返回结果
参数类型:表示这个行为的执行条件
语句类型:表示这个行为的执行过程
5继承类的事例
警察追捕小偷,警察攻击小偷,小偷掉血;小偷攻击警察,警察掉血;当血量为零时,小偷或警察死亡
警察代码:
public class jingchai(){
//定义警察的属性
Public int blood;
Public int gongjili;
//定义好警察的攻击方法
Public void gj (xiaotou x){
X.xiaotou = x.xiaotou - gongjili;
System.out.println(“警察攻击了一下小偷,小偷掉血了,小偷血量为:”+x.xueliang);
}
}
小偷代码:
Public class xiaotou {
//定义好小偷的属性
Public int blood;
Public int gongjili;
//定义小偷的攻击方法
Public void gj (jingcha j){
j.jingcha= j.jingcha - gongjili;
System.out.println(“小偷攻击了一下警察,警察掉血了,警察血量为:”+j.xueliang);
}
}
测试代码:
Public class Text{
//定义主函数,为程序入口
Public static void main(String[] args){
//定义警察对象,让方法进行调用
Jingcha j = new jingcha();
//让警察的属性有初始值
J.blood = 100;
J.gongjili = 2;
//调用警察的攻击方式
J.gj();
//定义小偷的对象,让方法进行调用
Xiaotou x = new xiaotou();
//让小偷的属性有初始值
X.blood = 90;
X.gongjili=3;
//调用小偷的攻击方法
X.gj();
}
}
6继承的概念
继承从表面意义为:承接、延续的意思
Extends 为继承
在java中表示子类继承父类的属性跟行为
格式为:public class 子类名称 extends 父类名称{ }
作用:解决代码重复问题,将重复的属性和行为用一个方式进行继承,另一个获得相同的属、性和行为;这样就避免了代码的重复性,并缩减了写代码时间。
例子:
窗口的继承(老例子)
窗口的原代码
Public class MyFrame extends JFrame{
//创建方法iniFrame()
Public void iniFrame(){
//设置窗口的属性
this.setTitle(“测试窗体”);
this.setSize(400,400);
this.setDefultCloseOperation(3);
this.setLocationRelativeto(null);
This.setVisible(true);
}
测试代码
Public class Text{
Public static void main(String[] args){
//创建窗口对象事例对象
Public class MyFrame extends JFrame{
//创建方法iniFrame()
Public void iniFrame(){
//设置窗口的属性
this.setTitle(“测试窗体”);
this.setSize(400,400);
this.setDefultCloseOperation(3);
this.setLocationRelativeto(null);
This.setVisible(true);
}
测试代码
Public class Text{
Public static void main(String[] args){
//创建窗口对象事例对象
MyFrame mf = new MyFrame();
//窗口对象的方法调用
mf.iniFrame();
}
}
MyFrame mf = new MyFrame();
//窗口对象的方法调用
mf.iniFrame();
}
}
7方法的重写
概念:将子类继承父类的过程方法进行修改
格式:方法名、返回类型、参数必须一样,进行过程的随意修改
例子:
设置三个类:1.A、B、C
这是A类
Public class A extends B{
//继承的方法是B类方法
}
这是B类
Public class B extends C {
Public int s;
Public int d;
//不是属于C类方法,这里进行方法重写属于B类方法
无C类方法
Public void iniFrame(){
System.out.pritln(“这是B的方法”);
}
窗口的原代码
Public class MyFrame extends JFrame{
//创建方法iniFrame()
Public void iniFrame(){
//设置窗口的属性
this.setTitle(“测试窗体”);
this.setSize(400,400);
this.setDefultCloseOperation(3);
this.setLocationRelativeto(null);
This.setVisible(true);
}
测试代码
Public class Text{
Public static void main(String[] args){
//创建窗口对象事例对象
MyFrame mf = new MyFrame();
//窗口对象的方法调用
mf.iniFrame();
}
}
}
这是C类
Public class C{
Public void iniFrame(){
System.out.println(“这是C的方法”);
}
}
8.面向对象的特征
(1)继承性
(2)封装性
(3)多态性
9 构造方法(构造器/构造函数)
定义:用于构造当前类对象的方法
格式:public 类名(){}
特点:不写会默认存在
创建当前类的对象的时候执行
作用:用于构造对象,类似于产品的生产过程
10 方法重载
定义:一个类中,多个方法的方法名相同,参数列表不同的方法,互为重载方法
作用:体现的是做同一件事情的不同过程
学习:在寝室看书
在华信撸码
构造方法重载的意义:可以用于初始一些属性
练习:
定义一个老师类:
1、属性:名字、年龄、身高、体重、性别
2、定义一个上课的方法,并重载上课方法,并测试
3、定义构造方法,并重载构造方法,并测试
4、通过重载构造方法来初始化属性
用继承+构造方法重载来实现PK游戏
11 方法分类
方法分类:
构造方法:public 类名(){}
普通方法:public 返回类型 方法名(){}
抽象方法:public abstract
返回类型 方法名();
12 类的分类
普通类:public class 类名{}
1. 只允许有构造方法和普通方法,一定不能有抽象方法
2. 可以创建对象
抽象类:public abstract class 类名{}
1. 三种类型的方法都可以存在
2. 不能创建对象
接口:public interface 类名{}
1. 只能有抽象方法
2.不能创建对象
13接口的继承
接口和抽象类作用:约束子类的方法定义
接口的继承关键字:implements
子类如果是普通类:则必须把父类的所有的抽象方法都重写一遍
画板项目:
1. 出现一个窗体
2. 在窗体上绘制图形
必须得有画笔
3. 鼠标监听:用于监听鼠标的操作
监听器的添加跟窗体的setVisible无关
4. 传参,参数传递:把对象从一个类中,传递到另外一个类