一、类、对象
世间万物皆对象
类是对象的模板
类的特征是静态表现
类的行为是动态动作
类和对象的关系
类是抽象的概念,是对象的模板
对象是具体的事物,是类的具体实例
面向对象编程
面向对象编程是利用编程方式提现出现实中类与对象。
从已有现实的类中定义程序中的类(Class)。
从类(Class)创建(实例化)具体的对象(Object)。
Java创建类的语法
public class 类名{
//类的内容
}
Java创建类的命名规则
public class Dog{
//类的内容
}
类名要直白意义,最好英文
首字母大写:Dog、BigDecimal
不要数字开头,不要包含特殊字符
创建类的实例对象
类名 对象名 = new 类名();
new 关键字是创建实例对象最重要的标志
对象的命名规则
Dog lucky = new Dog();
Person first = new Person();
类名要直白意义,最好英文
首字母小写:sam、firstItem
不要数字开头,不要包含特殊字符
成员变量
定义
成员变量就是隶属于对象的变量
成员变量用于保存对象的静态特征
同类型的不同对象拥有相同的成员变量,但值彼此独立
public class Dog{
String name;
int age;
float weight;
}
成员变量的使用
赋值
Dog lucky = new Dog();
lucky.name = "Lucky";
lucky.age = 3;
lucky.weight = 10.2f;
读取
System.out.println(lucky.name + "体重" + lucky.weight + "千克");
方法(Method)
什么是方法
方法是用于完成特定功能的整段代码
[修饰符] 返回值类型 方法名 (形式参数(形参)列表){
Java语句块
}
public String isOddNumber(int num){
if(num%2==0){
return "偶数";
}else{
return "奇数";
}
}
方法的调用
类名 对象名 = new 类名();//首先创建对象
类型 变量名 = 对象名.方法名(实际参数列表);//调用方法
//后续处理...
int a = 10;
MethodSample01 methodSample01 = new MethodSample01();
String r1 = methodSample01.isOddNumber(a);
System.out.println(a + "是" + r1);
无返回值的方法定义与调用
public void output1(){
System.out.println("一");
}
public void output2(){
System.out.println("二");
}
methodSample01.output1();
methodSample01.output2();
包(Package)
把功能相似或者相关的类组织在同一个包中
包也采用了树形目录的存储方式
通过包也可限定类的访问权限
包的命名规范
包采用“逆域名法”进行命名,用“.”分割,单词全部小写
标准格式:域名后缀.组织机构名.项目名[.模块名].包的职能
访问修饰符
访问修饰符用于控制类、成员变量、方法的访问范围
面向对象三大特征
封装
继承
多态
封装
封装即隐藏功能的实现细节
利用对象与方法是实现封装的直接途径
良好的封装让代码更容易阅读与维护
对成员变量进行读写封装
getter方法,getter方法用于读取成员变量的内容
getter书写格式: public 成员变量类型 get 成员变量名() ,PS:肖字母大写
setter方法,setter方法用于设置成员变量的内容
setter书写格式: public void set 成员变量名(新的数据参数)
定义
public class MobileNumber {
private String owner; //所有者
private String areaCode = "86"; //国家区号
private long mobileNumber; //手机号
//getter方法,getter方法用于读取成员变量的内容
//getter书写格式: public 成员变量类型 get成员变量名() ,PS:肖字母大写
public String getOwner() {
//this关键字代表当前对象的...
return this.owner;
}
//setter方法,setter方法用于设置成员变量的内容
//setter书写格式: public void set 成员变量名(新的数据参数)
public void setOwner(String owner) {
this.owner = owner;
}
}
调用
public class MobileNumberTestor {
public static void main(String[] args){
MobileNumber mobileNumber = new MobileNumber();
mobileNumber.setOwner("老齐");
String owner = mobileNumber.getOwner();
System.out.println(owner);
}
}
继承
父类
//Mark1
package com.imooc.object.Sample4;
public class Mark1 {
protected String title;
protected String color;
protected String movie;
public void description(){
System.out.println("型号"+title);
System.out.println("颜色"+color);
System.out.println("电影"+movie);
}
private void fire(){
System.out.println("利用手臂燃料泵射出火焰");
}
public static void main(String[] args) {
Mark1 mark1=new Mark1();
mark1.color="银灰色";
mark1.movie="钢铁侠1";
mark1.title="马克1型";
mark1.description();
mark1.fire();
}
}
子类
extends关键字用于类的继承
extends关键字后面是“父类”,extends关键字前面是“子类”
子类会继承父类的(default)/protected/public修饰的成员变量与方法
//Hulk
package com.imooc.object.Sample4;
public class Hulk extends Mark1{
private void repair(){
System.out.println("弹射备件替换战损组件");
}
public static void main(String[] args) {
//子类继承父类的成员变量和方法。
Hulk hulk=new Hulk();
hulk.color="红色";
hulk.movie="复仇者联盟2";
hulk.title="反浩克装甲";
hulk.description();
hulk.repair();
}
}
//Mark85
package com.imooc.object.Sample4;
public class Mark85 extends Mark1{
private void createShield(){
System.out.println("弹射备件替换战损组件");
}
public static void main(String[] args) {
//子类继承父类的成员变量和方法。
Mark85 mark85=new Mark85();
mark85.color="红色";
mark85.movie="复仇者联盟4";
mark85.title="马克85型";
mark85.description();
mark85.createShield();
}
}
多态
多态是同一个行为具有多个不同表现形式或形态的能力
实现多态的关键是接口
接口(Interface)是一个抽象的类型,只提供方法的定义
实现类是一个接口的具体实现,要实现每一个接口方法的功能
根据区号返回服务语言
接口
实现类
implements
模拟客服服务
使用者
二、ArrayList类
ArrayList是Java内置的数据集合,用于存储多个数据
ArrayList是数组替代品,提供了更多的数据操作方法
ArrayList几乎是每一个项目中必用的类
1、向列表添加数据
对象名.add();
对象名.add(索引位置,数据)// 像当前数组尾部添加数据
2、泛型:<>
List <数据类型> 对象名 = new ArrayList<数据类型>();
3、得到指定位置数据
对象名.get(索引位置);
4、获得列表的数值总数
对象名.size();
5、移除数据
对象名.remove(索引位置);
6、移除最后一项数据
对象名.remove(对象名.size()-1);
7、遍历列表所有数据
For( 数据类型 变量名 :列表名){
//循环体
}
package com.imooc.object.Sample6;
import java.util.ArrayList;
import java.util.List;
public class ArrayListSample {
public static void main(String[] args) {
//泛型<类型>,用于规范列表中的数据
List<String> bookList=new ArrayList<String>();//创建ArrayList对象
bookList.add("红楼梦");//向列表末端追加数据
bookList.add("西游记");
bookList.add("水浒传");
bookList.add("三国志");
bookList.add("index:0,element“镜花缘");
System.out.println(bookList);
String bookName=bookList.get(2);//得到指定索引位置(从0开始)
System.out.println(bookName);
int size=bookList.size();//得到列表总数
System.out.println(size);
bookList.remove(2);
bookList.remove(bookList.size()-1);
System.out.println(bookList);
for (String book:bookList){
System.out.println("《"+book+"》");
}
}
}
网友评论