Java四~六章总结

1.类和对象

定义类的语法

class 类名{ //为了规范类名首字母大写好看

成员;

}

2.类的实力化对象

实例化对象语法:

类名 对象名 = new 类名();new:给对象分配内存

3.访问对象中成员变量

访问对象中成员变量语法:对象名.成员

例子:一 先给对象分配空间 Demo1 zhang=new Demo1();

二 访问对象 zhang.name;

4.对象的引用

和数值名一样对象名也是表示一个引用。对象名赋值并不是把对象中内容进行赋值只是将引用赋值

例子 custormer zhang = new custormer(); 创建对象zhang

zhang.age=25; 给zhang的成员变量age赋值25

custormer li = new custormer(); 创建对象li

li=zhang 引用 ,这时li 和 zhang 对象都指向同一个空间,对象访问成员的值都一样.

5.成员函数

成员函数:就是在类中写的一个 函数(方法)

格式:void 函数名称(){

内容;

}

调用函数的方法同访问对象成员变量一样 格式:对象名.函数名();

函数和变量在同一个类中都是类中的成员 ,函数可直接访问同一类中的成员变量

最简单的函数只能完成一些事情,在实际操作中可以结合函数加入一些参数

格式void 函数名 (类型1 参数名1,类型2 参数名2.....){

内容;

}

调用方法对象名.函数名(参数列表); 参数列表用于传参数

参数列表内: 变量叫形参 ,常量叫实参

带返回类型的成员函数

格式 : 类型   函数名(参数列表)

{

内容;

return 还回值可常量,可变量;//    return 返回值类型要与函数类型一样

}

6.函数重载

函数重载方法

一个函数名相同,另一个函数名也相同 ,但是另一个函数要满足下列三条其中之一条件:

一,函数参数的个数不一样

二,函数参数个数相同,类型不同

三,函数参数个数相同,类型相同,但是函数参数列表中,参数出现顺序不同

函数重载也称静态多态

(多动态:在不同情况下呈现不同形态,列如同名函数可实现不同功能(也就是重载))

9.构造函数

构造函数遵循一下原则:

一,函数名称与类名相同

二,不含返回类型

定义有参构造函数后,在实例化对象时必须传参数,否则报错

使用方法:类名 对象名 = new 类名(构造函数传参列表)

注意:

一,当一个类的对象被创建时,构造函数就会被自动调用

二,构造函数可重载,也就是在一个类中可定义多个构造函数实现不同功能

三,一个类中如果没用定义构造函数,那么系统会生成一个默认构造函数(也就是无参构造函数,不做任何事情)

所以在你没有定义构造函数时可以通过“类名  对象名= new 类名();”创建对象

关键字: this (用与区分局部和全局变量)

例子:class Demo{

         int x=10;//全局

            void fun(int x)

{

     this.x=x;  //用this 指定x为全局变量   后面的是局部变量  ,也就是fun()函数的形参

}

}

7.封装

封装作用:在类中将不能暴露的成员隐藏起来  (用private设置为私有变量  不能被外部使用)

私有变量格式:  private :   int a;

用public 暴露成员的访问  让外部可使用

8.继承

格式 class 子类 extends 父类 {

成员;

}

例子:class  father {    //父类

 成员;

}

class  son extends father{  //子类继承父类

成员;

}

注意:

父类中的私有成员不能被子类访问 (封装的实现)

不能多重继承,一个子类只能继承一个父类 

可多层继承: 例子:A  extends B    B extends C     相当于A 间接继承C

9.成员覆盖

子类中函数定义与父类相同,最后调用子类中函数称为覆盖

列子:class  father{  //父类

void  text()

{

}

}

class  son extends father{   //子类

void text()//与父类相同的成员函数  调用的是子类的函数

{

}

}

如果要调用父类中的函数用 关键字  super,格式: super.函数名();

重写的子类函数访问权限>=父类函数的访问权限

例如 父类: public  fan(){}      子类:pulic fan(){}

         父类:public fan(){}     子类:private fan(){}    错的

10 抽象类和接口

抽象类特征:

抽象类不能实例化 ,即不能用new 产生对象   Dog dog1= new Dog();  错的

抽象方法只需要声,不需要实现(无方法体)

抽象类被子类继承,必须重写抽象方法(函数)

抽象类格式 在类定义前加abstract

例子 :abstract class Dog{

void  run();

}

接口:

接口定义格式:interface 接口名称{

函数声明 无函数实现;

}

例子: interface  Dog{

public void run();

}

接口继承格式:class 子类 implements 接口名{

重写接口函数;

}

例子: class Cat  implements Dog

{

   public void run()

{

System.out.println("Dog is runing");

}

}

注意:

接口中方法不需要abstract 指明, 系统默认其为抽象函数,接口中只有函数和常量

成员函数都是默认public   成员变量默认用public static final 标识(都是全局静态变量)

一个类继承父类的同时可以实现一个或多个接口

格式  class 子类  extends 父类 implements 接口1,接口2,.......{} extends 必须位于implements前

关键字  final :

修饰一个类时不能被继承   final class Dog{}

修饰一个函数不能被重写   final  void run{}

修饰一个变量不能被更改   final   double PI=3.14;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值