目录
第1章 面向对象的基础认知
1-1 介绍类与对象
类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。
1.类与对象的定义
类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
2.类与对象的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
3.类与对象的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
4.Java创建类的语法
pubilc class 类名{
//类的内容
}
1.类名要有直白意义,最好是英文。2.首字母大写
3.不要数字开头,不要有特殊字符。
第2章 面向对象的基础认知
在Java中,想实现功能,离不开类与对象。但对初学者来说,这一点不好理解。本章通过生活的案例,帮助大家理解类、对象、方法的使用。
2-1介绍类与对象
类和对象的关系
- 类是抽象的概念,是对象的模板
- 对象是具体的事物,是类的具体实例
面向对象编程
- 面向对象编程是利用编程方式体现出现实中类与对象
- 从已有现实的类中定义程序中的类(Class)
- 从类(Class)创建(实例化)具体的对象(Object)
创建类的实例对象
类名 对象名 = new 类名()
对象的命名规则
- 对象名要有直白意义,最好是英文
- 首字母小写:sam、firstltem
- 不要数字开头,不要包含特殊字符
2-2IDEA创建类与对象
代码
运行结果为空
2-3成员变量
- 成员变量就是隶属于对象的变量
- 成员变量用于保存对象的静态特征
- 同类型的不同对象拥有相同的成员变量,但值彼此独立
代码
public class Dog { //创建类 public static void main(String[] args) {//主函数 String name;//姓名 int age;//年龄 float weight;//体重 Dog doudou=new Dog();//创建doudou doudou.name="多多";//赋值 doudou.age=6;//赋值 doudou.weight=13.5f;//赋值 Dog lucky=new Dog();//创建lucky lucky.name="多多";//赋值 lucky.age=6;//赋值 lucky.weight=10.2f;//赋值 System.out.println(doudou.name+"今天"+doudou.age+"岁了");//输出 System.out.println(doudou.name+"今天"+doudou.age+"岁了");//输出 } }
结果
2-4方法的作用
public string isOddNumber(int num){//创建类
if(num 号 2 == 0){//if语句
return "偶数";}//输出偶数
else{//else语句
return "奇数";//输出奇数
无运行结果
第3章 面向对象特性之封装
3-1包
- 把功能相似或相关的类组织在同一个包中
- 包也采用了树形目录的存储方式
- 通过包也可限定类的访问权限
package com.imooc.objectproject.sample2;//import关键字用于导入其他包的类
import com.imooc.objectproject.sample1PackageSample01;//import关键字用于导入其他包的类
public class PackageSample02 {//创建类
public static void main(String[] args) {//主函数
PackageSample01 packageSample01=new PackageSample01()//要使用其他包下的类必须事先import导入
}
}
无输出结果
3-2访问修饰符
代码
public class PackageSample01 {//创建类
public string name;//public代表其他任何类都能访问的成员变量
private void sayHello(){//private代表只能在当前类中使用
System.out.println("Hello world!");//输出结果
}
void sayGoodbye(){//不写访问修饰符代表是默认修饰符,表示只能被包中其他类访问
System.out.println("Good bye!");//输出结果
public static void main(String!l args) {//主函数
PackageSample01 packaqeSample01=newPackageSample01() //新数组
结果
3-3面向对象特性之封装
封装性
封装的原则:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供的对应的getXxx() 和 setXxx() 方法
封装的好处:
1、通过方法来控制成员变量的操作,提高了代码的安全性
2、把代码用方法进行封装提高了代码的复用性
代码
public class sorter {类名
public static void main(String[] args){//主函数
Algorithm algorithm=newAlgorithm(); //新数组
algorithm.sort(a:77,b:91,c:37,d:66,e:102);//赋值
}
结果
3-4对变量进行读写封装
代码
结果
第4章 面向对象特性之继承和多态
4-1继承
继承性
继承是面向对象三个特征之一。可以使子类具有父类的属性和方法,还可以在子类重新定义,追加属性和方法。
继承的好处
提高了代码的复用性(多个类相同的成员可以放到同一类中)
提高了代码的维护性(修改一处多处修改)
代码
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"; //属性钢铁侠1
mark1.title="马克1型"; //属性马克1型
mark1.description(); //数组
mark1.fire();}//数组
结果
代码
//子类会继承父类的(default)/protected/public修饰的成员变量与方法
public class Hulk extends Markl {//继承
public static void main(String[] args) { //主函数
Hulk hulk=new Hulk(); //新建数组
hulk.title ="反浩克装甲"; //定义属性
hulk.color="红色";//定义属性
hulk.movie ="复仇者联盟3";//赋值复仇者联盟3
hulk.description(); //description关键词
结果
4-2多态
多态性
同一个对象,不同时刻表现出来的不同形态
多态的分类:具体类多态、抽象类多态、接口多态
重写:(前提是继承)
返回参数相同
方法名相同
传入参数相同
重载:
方法名相同
返回参数不相同 或者 传入参数不相同
4-3ArrayList类
- ArrayList是Java内置的数据集合,用于存储多个数据
- ArrayList是数组替代品,提供了更多的数据操作方法
- ArrayList几乎是每一个项目中必用的类
Fimport java.util.ArrayList; //导入需要的java.util.ArrayList的包
import java.util.list;//导入需要的 java.util.list的包
public class ArrayListSample { //创建类
public static void main(String[] args) {//主函数
List bookList = new ArrayList(); //新建数组
I bookList.add("红楼梦"); //书名
bookList.add("西游记"); //书名
booklist.add("水浒传"); //书名
bookList.add("三国志");//书名
}
结果