封装:是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证程序和数据不受外部干扰且不被误用
继承:是指一个对象从另一个对象中获得属性和方法的过程,支持按层次分类的概念。例如:车子。通过层次分类方式,一个对象只需在类本身具有唯一型的各个属性,然后从父类中继承通用属性
多态:是指一个方法只能有一个名称,但可以有多种形态。即程序中可以定义多个同名的方法
类和对象是面向对象程序方法中最核心的概念
类的概念
类是对某一类事物的描述,是抽象的 概念上的定义
对象的概念
对象是实际存在的属于该类事物的具体的个体,因而也称为实例(instance)
概念对比
类可以理解为是一个设计图纸,或者模板,而对象是类的一个实例,是具体的个体。所以在编程时,应该先建造类,再创建对象
类是由数据成员与方法成员封装而成的
类的一般结构:
[类修饰符] class 类名称{
//声明成员变量
//[修饰符]数据类型 变量名;
//声明成员方法
[修饰符]返回值类型 方法名(参数名){...}
}
类修饰符:public , 缺省 , abstract , final
成员变量:
数据类型可以是任何类型,基本的和复合的
修饰符可以多种 , public , private , final , static
可以赋初值,但一般不需要,各数据类型具有默认值
成员方法:
是用来定义对类的成员变量进行操作的,是实现类内部功能的机制,同时也是类与外界进行交互的重要窗口
例:圆柱体类的创建
- class Cylinder{
- double radius;
- int height;
- double pi = 3.14;
- void area(){
- System.out.println("底面积="+pi*radius*radius);
- }
- double volume(){
- return (pi*radius*radius)*height;
- }
- }
6.3 对象的创建与使用
对象的创建:
1,声明指向“由类所创建的对象”的变量
2,利用new创建新的对象,并指派给前面所声明的变量
例:要创建圆柱体对象
- Cylinder volu;
- volu = new Cylinder();
- //第二种写法
- Cylinder volu = new Cylinder();
对象的使用:
对象的使用采用如下格式
对象名.对象成员
- voiu.radius = 2.8;
- viou.height = 5;
对象存储
例:圆柱体对象的使用
- public class Work1 {
- public static void main(String[] args) {
- Cylinder cy = new Cylinder();
- cy.radius=5;
- cy.height=3;
- cy.area();
- System.out.println("体积是"+cy.volume);
- }
- }
在类的内部调用方法
在类的内部,方法之间可以调用
- class Cylinder{
- double radius;
- int height;
- double pi = 3.14;
- void area(){
- System.out.println("底面积="+pi*radius*radius);
- }
- double volume(){
- return area()*height;
- }
- }
6.4参数的传递
类中的方法形参可以传递参数,参数类型可以是任何类型
以变量为参数调用方法
- public class Work1 {
- public static void main(String[] args) {
- Cylinder cy = new Cylinder();
- cy.setCylinder(2.5 , 5 , 3.14);
- }
- }
- class Cylinder{
- double radius;
- int height;
- double pi;
- void setCylinder(double r , int h ,double p){
- pi=p;
- radius=r;
- height=h;
- }
- }
6.5 匿名对象
当一个对象被创建后,在调用该对象的方法时,也可以不定义对象的引用变量,直接调用该方法,这样的对象成为匿名对象。方法执行完后,该对象就成为了垃圾
new Cylinder().setCylinder(2.5 , 5 , 3.14);
- public class Work1 {
- public static void main(String[] args) {
- Cylinder cy = new Cylinder();
- cy.radius=5;
- cy.height=3;
- cy.area();
- System.out.println("体积是"+cy.volume);
- }
- }
- class Cylinder{
- double radius;
- int height;
- double pi = 3.14;
- void area(){
- System.out.println("底面积="+pi*radius*radius);
- }
- double volume(){
- return (pi*radius*radius)*height;
- }
- }