一.程序=数据结构+算法
二.对象包括属性和方法
方法的运用:修饰符+可选修饰符+返回值+方法名+(参数)+{方法体
+返回的参数}
例如:public static int add(int a,int b){
int s=a+b;
return s;
}
方法名一般取名为动词
对象是类的实例化,类是对象的抽象化
实例化之后,拥有了类的属性和方法
三.继承、多态
子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。
在继承关系中。父类和子类需要满足is-a的关系。
特点:在继承关系中,父类更通用、子类更具体。
使用继承可以有效实现代码复用,避免重复代码的出现。
例如:
父类:
private String name;
private String sex;
public xinxin1(String name,String sex)
{
this.name=name;
this.sex=sex;
}
public void hello(){
System.out.println(“嗨!我是”+name+”我是”+sex+”孩”);
}
子类:
public xinxin2(String name,String sex)
{
//调用父类的构造方法
super(name,sex);
}
public void hello(){
System.out.println(“我是新来的!”);
//调用父类的方法
super.hello();
}
位置注意:调用父类的构造方法的语句(super语句)必须是构造方法中的第一条语句。
因为创建对象的时候,需要先创建父类对象,再创建子类对象。
四.1.方法的重载:发生在同一个类中,方法名一样,方法参数必须不一样
1.1怎么用?
class ChongZai{
public void a(int a);
public void a(Strting a);
public void a(int a,int b);
}
ChongZai cz =new ChongZai();
cz.a(1); //调用a(int a);
cz.a("传的参数"); //调用a(String a)
cz.a(1,2); //调用a(int a,int b)
1.2什么时候用?
例如你做游戏 那么可能游戏可以有多个人完 而玩的人数又不确定是几个人 那么就可以用到重载了
例如最多3个人玩 那么你可以定义3个参数
public void a(String a);
public void a(String a,String b);
public void a(String a,String b,String c);
两个人那么你就调用2个参数的方法 3个人你就调用3个参数的方法
五.构造函数
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
语法结构:修饰符+类名{}
六.初始化块、静态初始化块
初始化块的语法结构:{}
静态初始化块的语法结构:static{},它比初始化块运行更早,并且只执行一次
七.封装
封装就是将字段get 跟set
字段声明前用
private String name //私有化
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
必须通过此类的get/set方法来访问
这就是对数据得封装
面向对象之一还有继承,多态
八.内部类
1.静态内部类
2.成员内部类
3.局部内部类
4.匿名内部类
九.绑定
运行期绑定和编译期绑定
十.修饰符之间的大小关系
本类 同包 子类 外包
public 是 是 是 是
private 是 否 否 否
protected 是 是 是 否
friendly(默认) 是 是 否 否
关键字:
1.static 静态的
1. 静态方法
通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法
声明为static的方法有以下几条限制:
· 它们仅能调用其他的static 方法。
· 它们只能访问static数据。
· 它们不能以任何方式引用this 或super。
class Simple {
static void go() {
System.out.println("Welcome");
}
}
public class Cal {
public static void main(String[] args) {
Simple.go();
}
}
调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如上所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。
3.静态类
通常一个普通类不允许声明为静态的,只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。
public class StaticCls {
public static void main(String[] args) {
OuterCls.InnerCls oi = new OuterCls.InnerCls();
}
}
class OuterCls {
public static class InnerCls {
InnerCls() {
System.out.println("InnerCls");
}
}
}
结果为:InnerCls
2.final 最终的
它属于可选修饰符,修饰基本数据类型时,代表的是常量;
修饰方法时,方法不能被重写;
修饰类时,类不能被继承
3.abstract 抽象的
abstract抽象方法必须在抽象类中,抽象类不能被实例化
abstract(抽象)修饰符,可以修饰类和方法
1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。
注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。
abstract修饰符在修饰类时必须放在类名前。