面向对象总结:
JAVAOOP :object oriented programming 面向对象编程
面向对象的三大特征:封装、继承、多态
Java:
方法
格式: [权限修饰符(public) static] 返回值类型 方法名(形参列表){
方法体;
[return 返回值];
}
方法有几种形式:
1、无参无返回值的。
2、无参有返回值的。
3、有参无返回值
4、有参有返回值
方法的重载:OverLoading(Java的面向对象的三个特征:封装、继承、多态 (方法的重写和方法的重载))
1、方法名相同,但是参数列表不同---构成了方法的重载。
工程:Java project
src :装java文件
package:包 相当于是一个文件夹 。目的是为了让我们工程不同的方法,不同的功能更清楚。
对象:事物存在的实体。
类 class:实质上就是同一类事物的统称,封装对象属性和行为的载体,对象是类抽象出来的一个实例
调用方法的方式:对象名.方法名();
调用属性的方式:对象名.属性名
类的声明:<public> class 类名{ } 强制规定类的修饰符只能是public
构造方法
作用:用来创建一个对象的实例
调用:只能通过new关键字去调用,并且只能在实例化对象的时候调用
注意:构造方法中不能有return,虽然没有返回值,但是调用构造方法返回了这个类的一个实例。
格式:public 类名(){
} //这是默认的构造方法,也叫隐式构造方法,无参数、无方法体。
显式构造方法:无参数、无方法体,和默认的构造方法一样的
显式构造方法:有参数,有方法体
static :静态
权限修饰符
public 公共的 整个工程,不同包(package),不同类都可以访问
protected 受保护的 同包不同类
缺省 友好的,默认的 同包不同类
private 私有的 同一个类中调用
方法的调用:(static 修饰)其他类中调用 类名.方法名(实参列表) 类名.方法名()
面向对象的核心思想:封装
规则:如果有一个属性a, 在类中定义 : private 数据类型 a;
getter : public 数据类型 getA(){ return a; }
setter : public void setA(数据类型 a){ this.a=a;}
面向对象的特征之一:继承
抽象:abstract 关键字
可以修饰类,修饰方法
抽象类的格式 :public abstract class 类名{ }
抽象方法的格式:public abstract void 方法名();
继承:extends
一个类继承另一个类,并且实现了父类的抽象方法。
我们把抽象类叫做父类,继承抽象类的类叫做子类。
方法的重写:将父类的方法按照自己的需求重新实现。
方法名相同,返回值相同,参数相同,只有(方法体)实现不同
注意:1、抽象方法可以被public或者protected修饰
2、抽象类不能用来创建对象
3、子类继承父类,必须实现父类的抽象方法,否则子类也定义为抽象类
4、继承不能继承父类的构造方法,但是可以通过super(参数列表) 去调用父类的构造方法。
抽象:
关键字:声明一个抽象类 abstract :[ public ] abstract class 类名{ }
继承:extends
final:修饰类、变量、方法
修饰类:该类成为最终类,这个类就不能被继承
修饰变量:变量就成为常量,不能被改变
修饰方法:该方法也成为最终方法,不能被重写(覆盖);
接口:
关键字:声明一个接口 interface :[public ] interface 类名{ }
实现:implements
接口中也可以定义变量和方法。但变量会默认为public static final (且只能是public static final )
但是一般情况下我们不在接口定义变量,接口主要用来定义方法,做操作。
方法会被默认为 public abstract 方法,接口中的方法都是抽象方法。
接口比抽象类更抽象。 接口是没有构造方法的
类与类之间的关系:1、聚合(一个类作为另一个类的属性)
2、依赖(一个类的对象在另一个类中作为一个方法的参数)
3、继承
-----------------------------------------------------------------------------------------
if(bc instanceof SavingCard){ // 对象 instanceof 类型 :判断对象是不是后面这种类型的
SavingCard sc=(SavingCard)bc;//下转型,父类强转为子类
sc.catchMoney();
-----------------------------------------------------------------------------------------
集合:
import java.util.ArrayList;
ArrayList<String> strList=new ArrayList<String>();
//1、添加一个字符串对象
String str="123";
strList.add(str);
//2、查看一个集合的长度。
int le=strList.size();
//3、集合删除对象 ①: remove(int index) ,索引从0开始,返回的是删除的对象
//Object 对象,在java中Object是所有类型的父类,所有类都默认继承Object 省略了extends Object
// 3、集合删除对象 ②: remove(Object o) ,索引从0开始,返回的是是否删除成功,是boolean类型
//4、删除所有元素 clear()
//5、获取集合中元素的方法 get(int index) 获取index索引位置的元素
//foreach。。。(for...in遍历集合,只能用来查询)
// 格式:for(数据类型(对象类型) 变量名(或对象名):集合(或数组)){
---
//}
===============================================================================================
String类型:
str="时间煮雨";
// 判断字符串里面是否包含某一个或几个字:包含contains()方法,返回或f的是truealse
//以。。。开头
boolean isStart=str.startsWith("时");
//以...结尾
boolean isEnd=str.endsWith("猪");
//获取字符/字符串在字符串中的位置,indexOf,索引位置从0开始
int position=str.indexOf("间");
System.out.println("位置:"+position);
//charAt(index) ,获取index 位置的字符
char a=str.charAt(3);
//截取字符串:subString(int beginIndex);从beginIndex位置开始直到结束 [beginIndex ,end]
//替换字符串 replace() 替换原有的,但是会产生一个新的,替换之后的字符串产生了一个新的对象
//分割字符串 split();
String[] mes=st2.split(",");
for(int i=0;i<mes.length;i++){
System.out.println(mes[i]);
}