java 第三章笔记

本文介绍了Java中的面向对象概念,包括类与对象、属性和操作、访问权限、继承和接口的特性。详细阐述了构造方法、方法重载与重写、抽象类和抽象方法的使用,并探讨了成员变量和接口的应用。
摘要由CSDN通过智能技术生成

一、

1.OOA:面向对象分析

 OOD:面向对象设计

OOF:面向对象编程

类:具体实例共同特征和行为抽象出来,封装成一个整体,模具类

对象:具体的实例,通过模具类创建出的一个具体的事物

2.属性(数据成员)➡特征、状态

 操作(   方法成员)➡方法

访问权限 class 类名 extends 基类 implements 接口列表{

//1,成员变量,成员属性,成员字段,成员域(fields)

//2.构造方法,构造器(constructor)

//3.成员方法(methods)

//1).实例方法(非静态);2) 静态方法=类方法;3setter和getter(设置器和访问器))

}

}

二、访问权限

public >protected >默认的(package或default) >private

1,说明:

public,修饰某成员,任意位置都可以访问

protected,修饰某成员,相同类包的不同类可以访问,不同类包中有父子继承关系的类可以访问

默认的(package),什么都不写,就是默认的访问权限,它修饰的成员,在一个类包中的不同类可以访问。

private,修饰的成员只能自己类包中可以访问

三、继承和接口

继承的特点:

1,只能继承父类中非private的成员

2,父类中的成员可被子类覆盖

(1)成员变量的覆盖------变量的隐藏

(2)成员方法的覆盖-----方法重写

(3)方法重载和方法重写的区别

3,子类通过super关键字访问父类中被覆盖/隐藏的成员

4,构造方法的执行顺序:

(1)子类生成对象时,先执行父类的构造方法,再执行子类的构造方法

(2)子类默认调用父类中无参数的构造方法,子类构造方法中如果有super()代码,一定是第一行语句。

(3)子类构造方法中,可以通过super(×××)指定调用父类中的某个构造方法

super  和 this 的区别:super可以表示父类对象,也可以表示父类的构造方法。this同理。

this关键字:

(1)用来区分全局变量和局部变量

(2)用来指代自身对象的引用

int age;

public void setAge(int age){

this.age=age;

}

分析:(1)this调用的是全局变量 (2)this调用的是某对象的成员变量

        class point{    // 定义“点”类

                //x轴坐标和y轴坐标,由于准备用于继承,故修饰为protected

                protected float mx,my;

                public point(float x,float y){   //构造方法

                  mx=x;

                  my=y;

        }

}

class circle extends point{  //定义“圆”类继承于“点”类

protected float mRadius; //半径

public circle (float x,float y,float r){  //构造方法

super (x,y);  //显式调用父类有参构造方法

mRadius = r;

        }

}

子类调用父类构造方法

构造方法(默认一定会调用父类中无参数的构造方法)

(1)如果父类中有带参数的构造方法,则子类会报错

(2)如果父类中只有带参数的构造方法,那么子类必须要指定调用父类中某个构造方法,否则会报错

不能直接默认调用父类中带参数的构造方法

(3)子类生成对象时,默认先执行父类的构造方法,再执行子类的构造方法

子类和父类对象的转换:

父类 对象1 = new 子类构造方法(参数);

此时的对象1,就是对象的上转型

子类 对象2 = (子类)父类对象1

此时的对象2,就是对象的下转型

此时父类对象1必须是上转型对象才成立

接口的特点:

1,接口用关键字interface来定义,而不是class

2,   接口定义的变量全部是公有的,静态的,最终的,所以都是常量

3,接口中定义的方法都是抽象、公有的,所以修饰符可以省略

4,接口没有构造方法,而且定义的方法都是抽象方法,即只提供方法的定义,而不提供具体的实现

5,接口采用多重继承机制,而不是采用类的单重继承机制

代码:

[修饰符] <interface> <接口名> [extends 父接口列表]{

[public] [static] [final] 类型 变量名:初始值; //静态常量

[public] [abstract] 返回值 方法名([参数列表]);  //抽象方法

接口的应用:

一个类要实现某个或某几个接口时使用 implements关键字,一个类可以同时实现多个接口,各接口间用","隔开。这个类,称为接口的实现类

四、成员变量

定义:字段、属性、成员域。

默认情况下会被赋初始值

int类型,初始值为0

float类型,初始值为0.0f

double类型,初始值为0.0

char类型,初始值为‘\u000’

boolean类型,初始值为false

String类型,初始值为null

可以通过setter和getter对成员变量进行修改和访问

五、构造方法

特点:

1,构造方法的名字和类的名字相同

2,无返回类型,且不写void

3,构造方法的作用,是给对象的成员变量赋初始值

4,每一个类可以有0个或多个构造方法

如果没有,JVM会提供一个无参数无方法体的构造方法

如果有,JVM就不会提供构造方法了

5,构造方法在创建对象时通过new关键字调用

6,构造方法可以重载

方法重载

定义:一个类中有多个相同方法名的方法,就是方法重载

特点:方法重载,依靠参数的不同来区分,参数的类型不同,或个数不同

说明:方法重载与方法的返回类型无关!

public void func(){}

public void func(int a){} //方法重载,可以参数个数不同

public void func(int a,int b){}  //方法重载,可以参数个数不同

public void func(double a,double b){} //方法重载,可以参数类型不同

public void func(int x,int y){} //不合法,方法重载,与参数名字无关

public int void func(){} //不合法,方法重载,与返回类型无关

六、方法 访问权限 返回类型 方法名(参数列表){

        方法体

[是否有return 语句]//主要看是否有void{}

七、

抽象类

定义:由abstract修饰的类,就是抽象类

特点:抽象类中可以有成员变量、构造方法、实例方法,与普通类一致

抽象类中还可以有抽象方法

应用:抽象类的派生类,必须重写所有的抽象方法

什么是抽象方法?

定义:由abstract修饰的方法,就是抽象方法

特点:抽象方法只能有声明,不能有实现

应用:含有抽象方法的类,必须是抽象类;抽象类的子类,必须重写抽象方法

代码:

public abstract class Abstractclass{

        private int x=100;

        public void show()

}

System.out.println("抽象类中可以有成员变量:"+this.x);

}   public abstract void say():  //抽象方法,只能有声明不能有实现

抽象类一般没有足够的信息来描述一个具体的对象,抽象类只用于继承,不能用于创建对象。一个抽象类一般包括一个或多个抽象方法(只有方法说明,没有方法体),也可以没有。抽象类的子类必须实现其父类定义的每一个抽象方法,若没有实现父类的所有抽象方法,则该子类也应该定义为抽象类。换句话说,有抽象方法的类一定是抽象类!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值