1,面向对象思维
(1)面向对象是Java语言的特点
(2)面向对象概念解释
OOP:Object Oriented Programming(面向对象程序设计)
思维:将事物进行抽象成类、对象,通过类、对象相互之间的关系构成一个整体
英雄联盟:
5类英雄:例ADC是这类英雄的抽象
牛肉拉面:
面向对象:组件+拼装
三类:面、汤、菜
(3)面向对象的三特性与五个原则
三特性:封装、继承、多态
五原则:了解
单一职责/开放封闭/里氏替换/依赖倒置/接口分离
- 如何描述一个类?
功能(方法)、特征(属性)
- 新建Java程序
Window -> show view -> project explorer
- 新建一个项目
file -> new -> java project -> 命名 ->finish
- 新建一个包
右键单击项目->(src) -> new package -> name(命名首字母小写)->finish
- 新建一个类
右键单击包->new class->name(命名首字母大写)->finish
- Java基本语法:
- ;书写要求:
书写用英文字符
Tab键输出包含关系
- :注释:
注释就是开发者说明解释代码
提高代码的可读性,便于维护语法://表示单行注释
/*被注释的内容*/ 多行注释
- :主方法作用(main):main是参数名
Package:包
Public:公用的
Public static void main(String[] args){};
Static:静态的
程序运行的入口
- 类的属性
- 属性是类的特征的描述
- 如何定义属性?
Static final数据类型 变量 变量名
Java的数据类型(8个):
整数:byte/short/int/long
小数:float/double
布尔:boolean
字符:char
- 属性的使用
修饰词
Static:静态的
Static修饰的属性是全局属性(作用范围)、
有static可以全局用,没有static不能全局使用
Final 修饰词
修饰属性,表示属性值不可变
权限修饰词
public 公众的
任何一个类都可以使用
protected 受保护的
同包中的类可以使用
default 默认的
关键词省略不写,同包中使用
Private 私有的
当前类使用
如何使用?
类名.属性名
- 输出语句:
- System.out.Println()
表示在console控制台输出内容并换行
(2)System.out.print()
表示在console控制台不换行
若输出的是字符串,加双引号,其他不加
- 方法:(Function):主方法不属于任何一个类
- 是什么?What(定义):
是一段完成特定功能的代码片段
作用:描述一个类
- 什么时候用?
封装功能体,使用这个功能
- 怎么用? 方法的定义
修饰符 返回值类型 方法名(参数列表){功能体}
(简述main方法(是什么,什么特点,怎么用,何时用?)
程序的住入口,代码是从主方法上开始执行的
写法是固定的
定义一个类中使用
如果一个类需要独立运行的时候,就需要main方法)
参数列表:
是功能体中会用到的数据
如何定义?数据类型 变量名,数据类型 变量名...
形参:定义时用的参数叫形式参数
实参:在使用方法时传入具体的值叫实际参数
功能体:包含功能的代码片段
返回值类型:
指的是功能体向外返回的数据的类型
若不需返回数据,用void(无返回值类型)
注意:有返回值,需要关键词return向外返回
功能体中,return后的代码不运行
Static 修饰方法
被修饰的方法为静态方法
若是静态方法,可以被类直接使用
静态方法只能访问静态的方法、属性
非静态的方法可以访问静态成员
- 怎么样?方法的调用
类名.方法名();
若是静态方法,可以被类直接使用
- 抽象方法
修饰词:abstract(抽象的)
特点:抽象方法不能有方法体
注意:必须在抽象类中
因为这个方法要被子类实现,不能用private
不能使用static
扩展:抽象类中必须要有抽象方法吗?
不是
- 方法的重载(overload)
- 是什么
方法名一样,参数列表不一样
参数不一样,个数或数据类型不一样
- 使用
根据参数列表,自动运行对应的方法
- 对象 object
- 何为对象?
Java是面向对象的编程
对象和类的关系
对象是类的实例化,类是对象的抽象(模板)
- 如何新建一个对象呢?
声明并实例化对象
类名 对象名 =new 类名();
先声明,再实例化
类名 对象名 =null;
对象名 =new 类名();
- 构造方法(construction)
什么功能?创建对象的功能
在创建对象时,会自动调用构造方法(隐藏)
如何定义构造方法?
方法名和类名完全相同
不需返回值类型,不要static修饰
Java中自带的构造方法是无参构造方法
This的理解
This指的是当前对象
- 对象之间的引用
复制内存地址进行引用
int a=1;
int b=a;
a=5 ;
b? (b的值为1)
9,类的引入
(1) 使用外部类时,需要先引入
关键词import —包名.类型
若是Java自带的类库:import java.包名.类名
在代码的package下
10 ,接口(Interface)
(1)接口是什么?
理解为特殊的类,类中的方法没有具体的实现
(2)接口中的属性默认值是public static final 修饰。
(3)接口中没有构造方法。
(4)接口的定义
权限修饰符 Interface 接口名{}
- 接口的实现
Implements 关键词
11,继承
关键词 extends(扩展)
例:A类继承B类,表示A类对B类的扩展
A类被称为B类的子类,B类是A类的父类
子类又称基类;父类又称超类
特点:子类可以继承父类所有的方法和属性,private除外
Java是单继承的语言:一个子类只能有一个父类
注意:子类在创建对象时,先调用父类的构造方法
再调用自己的构造方法
当父类中的构造方法有参数时,子类新建对象时要注意
使用super(参数)调用父类的构造方法
Super表示父类;
super()表示调用父类的构造方法;
super.x表示调用父类的属性x;
super.f()表示调用父类的方法f