面对对象基础概念
来源:互联网 发布:数据采集卡ni 编辑:程序博客网 时间:2024/05/08 04:37
面对对象基础概念
%%java三大特性:封装型、继承性、多态性
1.构造器/构造函数
定义:任何一个类都会有一个默认的构造函数,用于构造一个实例
格式:public 类名(){}
注意:堆空间中的对象如果没有变量引用,则由Java虚拟机的垃圾清理机制帮我们做清理工作
作用:1)创建对象
2)初始化对象的属性
例1:public class A(){} //A类里存在一个默认的构造函数
注:对于变量、类等都不同情况都可能存在的相应的默认值,没写不代表没有!!!
例2:public class A(){
public void play{ //A类中定义了play函数
System.out.println("A类");
}
}
例题:public class Test {
public static void main(String[] args) {
Teacher tea1 ; //不会调用构造器,只是声明了一个变量是Teacher类型
tea1= new Teacher("张三");//new Teacher("张三")语句才会调用构造器
Teacher tea2 = new Teacher();
tea1.name = "张三";
tea2.name = "李四";
tea1 = tea2; //将tea2所指向的初始化对象地址改变为指向tea1对象的堆地址
tea1.name = "王五";
System.out.println(tea1.name);
System.out.println(tea2.name);
}
}
运行结果:王五
王五
注:创建对象存入内存,其中将对象名存入栈,其中对象名指向对应的堆中初始化对象的地址;
2.方法重载
定义:在同一个类中,多个方法的方法名相同,参数列表(参数个数、顺序、类型)不同的方法互为重载方法
普通方法重载和构造方法重载
构造方法重载:1.如果构造方法被重载了,默认无参的构造方法则不存在了
2.构造方法重载作用,用于初始化属性
例3:public class Teacher {
public Teacher(String n){
name = n;
}
public Teacher(){}
public String name;
//根据调用构造函数的参数列表的不同调用不同的构造函数
public void study(int a){
System.out.println("学习1");
}
public void study(String a){
System.out.println("学习2");
}
public void study(String a,String b){
System.out.println("学习3");
}
public void study(String a,int b){
System.out.println("学习4");
}
public void study(int a,String b){
System.out.println("学习5");
}
}
3.继承
定义:子类继承父类的相关属性和方法
关键字:extends、implements
语法:public class 子类名 extends 父类名{}
注:对于继承,子类继承除构造函数外所有属性,其中还可以在子类中对继承的属性进行修改或者重写,子类中可对类属性进行增加。
例4:public class Aextends D{ //A类继承D类,A为D类的子类
public void play(){
System.out.println("A类");
}
public String sex;
}
例题2:public class Test {
public static void main(String[] args) {
D a2 = new A();
D a3 = new D();
a2.play();
a3.play();
}
}
注:子类对象可以初始化给父类对象,反之则不可以。
4.自动转型和多态
自动转型:子类的对象自动转型为父类的类型
父类类名 变量名 = new 子类类名();
注意:转型后的对象,如果子类重写了父类的方法,则执行的是重写后的,如果没有重写,则执行的是父类的
多态性:多个同类型的对象,执行同一个方法,结果不一样
5.方法分类(普通方法、构造方法、抽象方法)
格式:
普通方法:public 返回类型 方法名(参数列表){}
构造方法:public 类名(参数列表){}
抽象方法:public abstract 返回类型 方法名(参数列表);
6.类的分类(普通类、抽象类、接口)
区别:
普通类:public class 类名{}
1.只能定义普通方法和构造方法,一定不能有抽象方法
2.属性可以是常量,也可以是变量
3.可以创建对象
抽象类:public abstract class 类名{}
1.三种类型的方法都可以存在
2.属性可以是常量,也可以是变量
3.不能创建对象
接口:public interface 类名{}
1.一定只能有抽象方法
2.一定只能是常量
3.不能创建对象
注意:在接口中,常量修饰词(static final)和抽象方法修饰词(abstract)可以省略,但是在抽象类中不能省略
7.接口/抽象类继承
格式:
抽象类继承:public class 子类类名 extends 抽象父类{}
接口继承:public class 子类类名 implements 父类接口名{}
注意:
1).抽象类和接口,当做父类使用,用于指导子类方法的定义
2).抽象类是单继承,接口是多继承
- 面对对象基础概念
- java/面对对象基础
- C#面对对象基础
- 面对对象基础要点
- 黑马程序员_C#面对对象概念
- 黑马程序员--java基础--面对对象1
- 黑马程序员--java基础--面对对象2
- Java——面对对象的基础
- java夯实基础系列:面对对象原则
- C#——面对对象基础
- 面向对象基础概念
- 面对对象
- 面对对象
- 面对对象
- 面对对象
- 面对对象
- 面对对象
- 面对对象
- PullToRefresh上下拉刷新使用步骤
- 【读书笔记】《数字图像处理》(第三版)-第2章 数字图像基础
- 单例设计模式深入浅出分析
- 新浪开放平台注意事项
- 分布式计算学习笔记之二:Socket通讯与HTTP服务器
- 面对对象基础概念
- python学习之函数
- android 利用ViewStub标签动态加载布局,节省资源
- opencv函数——cvCreateCapture()
- AJax使用MVC
- 链表结构回顾
- Day3.Java基础之构造方法,继承,多态...
- cors跨域 web.config配置
- 百度笔试编程题:爬行的蚂蚁(c++)