面向对象
本质:以类的方式组织代码,以对象的组织(封装)数据。
三大特性:
继承
多态
从认识论角度是先有对象后有类,对象,是具体的事物。类,是抽象的,是对对象的抽象。
从代码运行角度是先有类后有对象。类是对象的模板。
静态方法 static
类名.方法名

非静态方法

静态方法不能调用非静态方法
形参和实参

形参是定义的字符,实参是具体的数字
值传递和引用传递


//学生类
public class Student {
    //属性:字段
    String name;//null
    int age;//0
    public void  study(){
        System.out.println(this.name + "在学习");
    }
}
public static void main(String[] args) {
    //类:抽象的,实例化
    //类实例化后会返回一个自己的对象!
    //student对象就是一个Student类的具体实例
    Student zhangsan = new Student();
    Student lisi = new Student();
    zhangsan.name="张三";
    zhangsan.age=3;
    lisi.name="李四";
    lisi.age=4;
    System.out.println(zhangsan.name);
    System.out.println(zhangsan.age);
    System.out.println(lisi.name);
    System.out.println(lisi.age);
}
1.类与对象的关系
类:是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物。
对象:就是抽象概念的具体实例。

2.方法
定义和调用
3.对应的引用
引用类型:基本八大类型
对象是通过引用来操作的:栈-------》堆
4.属性:字段Filed 成员变量
默认初始化:
数字:0 0.0
char: u0000
boolean: false
引用:null
修饰符 属性类型 属性名=属性值!
5.对象名的创建和使用
必须使用new 关键字来创建对象,构造器
Person zhangsan = new Person();
对象的属性: zhangsan.name
对象的方法: zhangsan.sleep()
举例:
定义学生类
public class Student1 { String name; int age; String address; public Student1() { } public Student1(String name, int age, String address) { this.name = name; this.age = age; this.address = address; } public void info(){ System.out.println("姓名:"+this.name+"年龄:"+this.age+"住址:"+this.address); } }
后调用方法
public static void main(String[] args) { Student1 stu1 = new Student1("张三",18,"哈尔滨"); Student1 stu2 = new Student1("李四",20,"秦皇岛"); Student1 stu3 = new Student1("王五",28,"大庆"); stu1.info(); stu2.info(); stu3.info(); }
运行结果:

封装
“高内聚,低耦合”
高内聚:类的内部数据操作细节自己完成,不允许外部干涉。
低耦合:仅暴露少量的方法给外部使用。
属性私有,get/set方法

继承
extends扩展,子类对父类的继承
继承是类与类之间的一种关系,除此之外还有依赖,组合,聚合
继承关系的两个类,一个为子类(派生类),一个为父类(基类),子类继承父类,使用关键字extends
super

super:调用父类方法

方法重写


多态
同一方法可以根据发送对象不同而采用多种不同的方式
一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)
存在条件:
1.有继承关系
2.子类重写父类方法
3. 父类引用指向子类
方法不能被重写(没有多态):static静态方法,属于类,不属于实例
final 常量 private方法

输出结果:son son
instanceof 判断对象是什么类型
instanceof 两边是否有父子级关系

//高 低 Person obj = new Student(); //父类转换成子类 //强制转换 (转成类型)变量名 Student student = (Student) obj; student.go(); }
//子类转换成父类会丢失一些方法,直接转换即可 Student student = new Student(); student.go(); Person person = student;
抽象类:abstract

接口
作用:
1.约束
2.定义一些方法让不同的人使用
3.默认方法:public abstract
4.常量:public static final
5.接口不能被实例化,接口没有构造方法
6.implents可以实现多个接口
7.重写接口中方法,(自动生成)

异常机制 Exception
异常发生在程序运行期间,影响了正常程序执行流程
抛出异常
捕获异常
关键字:try catch
 
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号