网站首页 > java教程 正文
封装 private 修饰属性,使属性在其他类中不可见
将代码封装在方法中,将数据保存在对象中,
将属性方法定义在类中
用户不需要关心方法中代码执行的细节,只需
要知道方法的作用就可以了
继承 子类可以继承父类中的非私有的方法和属性
Person(age name sleep)
Student(age name sleep eat)
Employee
多态 对象的多种形态
Student s = new Student();
Person p = new Student();
Object o = new Student();
父类类型的引用指向子类对象
2对象
程序其实就是对象的集合,对象是程序中最小
的单元,程序的执行是对象之间的相互作用。
类
用于创建对象的模板
面向对象编程,其实就是创建类
元数据:用来描述数据的数据
java中类的声明使用class
声明和实现必须在同一个时间完成,即代码必须
在类中
3.方法的定义
<modifiers><return_type><name>([arguments])
[throws exception]{
block of code
}
modifiers:修饰符必须存在,而且可以有多个,
多个修饰符之间没有固定顺序
return_type:方法的返回类型,如果没有返回值
使用void
name:方法名,符合标识符的命名规则
arguments:参数列表,可有可无,调用方法时需要
传递的参数类型
throws:抛出方法执行时产生的异常
普通成员方法,不使用static修饰符修饰
先有对象,再加载方法,在其他类中必须通过对象
调用方法,通过 . 来调用
在一个对象中,普通方法可以相互调用,直接通过
方法名调用
4.参数传递
基本类型参数传递,是值传递
引用类型参数传递,是引用传递
5.this
如果局部变量的名字和实例变量的名字相同,当在
方法中调用时,选择的局部变量
this关键字 指向当前类或对象
当指向对象时,this相当于一个引用变量,存放的
是对象的引用地址,指向当前对象
在构造器中使用this关键字,调用类中的其他构造器
this语句必须是第一行语句
6.数据隐藏
private 私有的 修饰的成员只在当前类中可见
default
protected
public 公有的修饰的成员在任意类中可见
目的是保护数据,使数据在其他类中不可见 或使
方法在其他类中不能调用或重写
7.封装
使实现细节不可见
给用户提供统一的接口
提高可维护性,提高编程效率
8.方法的重载 overloading
发生在同一个类中
方法名必须相同
参数列表必须不同
参数类型,个数,顺序
返回类型可以不同
9.构造器
创建对象,给对象中的属性赋值,返回对象的引用
地址
构造器的名字与类名相同
没有返回类型
public 类名([参数列表]){
...
}
每一个类中必须要有构造器
默认构造器即无参,没有代码块的构造器
当类中没有显式的定义任何的构造器时,jvm会在类
中添加一个默认的无参构造器
构造器只能通过new关键字调用
10.创建,初始化对象
1.给对象分配内存空间,使用默认值给对象的属性
赋值
2.如果属性有显式赋值,再重新赋值
3.调用构造器,返回对象的引用地址
11.子类
is
子类 父类
has
Teacher name age id course
use
Teacher System.out.println()
使用extends 关键字定义子类
单继承
12.继承
1.构造器不能被继承
2.属性和方法可以被继承
3.子类的构造器中会隐式的调用父类的无参构
造器
super();
4.当父类中没有默认的无参构造器时,需要在子类
构造器中显式的调用父类的有参构造器,通过super
关键字(必须是第一条语句)
创建子类对象时,一定会调用父类的构造器
父类子类
AnimalDog
double heightString color
String type
Animal()Dog()
Animal(height,type)Dog(color)
eat()w()
sleep()
13.super
指向当前类的父类或父类对象
在子类构造器中,可以使用super关键字调用父类的
构造器,super语句必须是第一行语句
在一个构造器中不能同时使用super和this调用其他
构造器
使用super可以调用父类的变量
14.Object
祖先类
java中所有的类都是Object的直接或间接子类
Object
String toString()
返回当前对象的全类名和引用
com.briup.Teacher@12345678
booleanequals(Object)与其他对象比较
inthashCode() 返回对象的哈希值
15 方法的重写
1.方法名相同,参数列表相同,返回类型相同
2.方法的可见范围不能缩小
3.方法抛出的异常不能扩大
16.多态
1.多种不同的类型
2.一个对象只有一个类型
3.一个变量可以有多种类型
因为继承所以产生多态,多态是发生在运行时,不
同于方法的重载发生在编译阶段
Shape s = new Circle(10,"circle");
s.draw(s.type);
编译阶段,检查Shape中是否定义了draw(String),
如果没有定义,报编译错误
运行阶段,调用实际指向的对象中的方法
17.instanceof
使用instanceof判断某个对象的类型
引用 instanceof 类型
18.类型转换
使用instanceof 确定类型
子类类型向父类类型转换,是隐式转换
父类类型向子类类型转换,必须显式转换
- 上一篇: 面向对象的三大特性(面向对象的三大特性是什么)
- 下一篇: 那些有用但不为大家所熟知的 Java 特性
猜你喜欢
- 2024-10-07 java 面对对象的三大特性——面试的时候一直在看,面试官很满意
- 2024-10-07 第三章 java内存模型与并发三大特性
- 2024-10-07 理解Java的三大特性之封装(java的封装是什么)
- 2024-10-07 揭秘Java五大特性,你不容错过!(java的基本特性)
- 2024-10-07 JAVA基础——面向对象三大特性:封装、继承、多态
- 2024-10-07 Java有哪些特性?(请简述java有哪些特性)
- 2024-10-07 Java-面向对象三大基本特性,五大基本原则
- 2024-10-07 java多线程中的三大特性用代码给大家解释清楚
- 2024-10-07 好程序员Java学习路线分享三大特性之多态
- 2024-10-07 Java 12 新特性概述(java语言具有较好的安全性和可移植性及与平台无关等特性)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)