java接口基础入门.docx

上传人:b****2 文档编号:2238434 上传时间:2022-10-28 格式:DOCX 页数:26 大小:166.10KB
下载 相关 举报
java接口基础入门.docx_第1页
第1页 / 共26页
java接口基础入门.docx_第2页
第2页 / 共26页
java接口基础入门.docx_第3页
第3页 / 共26页
java接口基础入门.docx_第4页
第4页 / 共26页
java接口基础入门.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

java接口基础入门.docx

《java接口基础入门.docx》由会员分享,可在线阅读,更多相关《java接口基础入门.docx(26页珍藏版)》请在冰豆网上搜索。

java接口基础入门.docx

java接口基础入门

1static(静态、修饰符)

static修饰成员变量:

如果一个成员变量使用static修饰,那么该成员变量的数据就是一个共享的数据.,、

静态成员变量的访问方式

方式一:

可以使用对象访问。

对象.属性名

方式二:

可以使用类名访问。

类名.属性名

注意:

1.非静态成员变量不能使用类名直接访问,要使用对象访问.

2.千万不要为了访问方便而使用static修饰。

一定要数据真正是需要被共享的时候才使用static修饰。

static修饰成员函数:

静态函数的访问方式

方式一:

可以使用对象访问。

对象.属性名

方式二:

可以使用类名访问。

类名.属性名

推荐使用类名访问静态的成员。

静态函数要注意的细节:

1.非静态函数只能由对象调用,静态函数可以由类名或者对象进行调用。

2.静态函数中不能直接访问非静态成员,可以直接访问静态的成员。

3.非静态函数可以直接访问非静态成员以及可以直接访问静态的成员。

4.静态函数中不能出现this或者super关键字。

单例设计模式:

保证一个类在内存中只有一个对象。

饿汉单例设计模式:

1.私有化构造函数。

2.声明本类的引用类型变量并且指向本类的对象,(privatestatic)

3.提供一个公共静态的方法获取本类对象。

懒汉单例设计模式:

1.私有化构造函数。

2.声明本类的引用类型变量,但是不要创建对象。

3.提供一个公共静态的方法获取本类对象,获取之前先判断是否已经创建了本类的对象,

如果没有创建,创建再返回。

如果已经创建了,那么直接访问即可。

继承:

继承的格式:

class类名1extends类名2{

}

继承要注意的事项:

1.父类私有的成员不能被继承。

2.父类的构造函数不能被继承。

3.创建子类对象时,默认会先调用父类的无参构造函数,然后再调用子类的构造函数。

super关键字:

super关键字代表的是父类的引用空间。

super关键字的作用:

1.如果子父类存在同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。

2.创建子类对象时,默认会先调用父类的无参构造函数,可以通过super关键字指定调用父类的构造函数,

super关键字要注意的事项:

1.如果在子类的构造函数中没有指定调用具体父类构造函数,那么java编译器会在子类的构造函数上添加super()语句。

2.super关键字调用构造函数时必须出现构造函数中第一个语句。

3.this与super调用构造函数的时候不能同时出现在一个构造函数中,因为都需要是第一个语句。

方法重写:

子父类存在着同名的函数。

方法重写的需求:

如果父类的功能无法满足子类的需求,那么就进行重写。

方法重写的要素:

1.函数名与形参列表必须一致。

2.子类的权限修饰符必须大于或者等于父类的权限修饰符。

3.子父类的返回值类型必须小于或者等于父类的返回值类型。

4.子类抛出的异常类型必须要小于或者等于父类抛出的异常类型。

instanceof:

判断一个对象是否属于某种类型。

instanceof关键字的使用格式:

对象instanceof类。

instanceof的使用前提:

判断的对象与类型必须存在继承或者实现的关系。

*/

classDemo1

{

publicstaticvoidmain(String[]args)

{

System.out.println("HelloWorld!

");

}

}

/*

final(最终、修饰符)

final关键字的用法:

1.final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的。

2.fianl关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。

3.final关键字修饰一个函数的时候,该函数不能被重写。

4.final关键字修饰一个类的时候,该类不能被继承。

常量的修饰符一般为:

publicstaticfinal

*/

//圆形

classCircle{

doubler;//半径

publicstaticfinaldoublepi=3.14;//固定不变的

publicCircle(doubler){

this.r=r;

}

//计算面积

publicfinalvoidgetArea(){

System.out.println("圆形的面积是:

"+r*r*pi);

}

}

classDemo2extendsCircle

{

publicDemo2(doubler){

super(r);

}

publicstaticvoidmain(String[]args)

{

/*

finalCirclec=newCircle(4.0);

test(c);

*/

Demo2c=newDemo2(4.0);

c.getArea();

}

publicstaticvoidtest(Circlec){

c=newCircle(5.0);//c变量又重新指向了新的对象。

c.getArea();

}

}

/*

抽象类:

目前存在的问题:

1.动物类的run方法描述的不正确。

2.没有强制要子类一定要重写run方法。

抽象类的应用场景:

我们在描述一类事物的时候,发现该种事物确实存在着某种行为,

但是这种行为目前是不具体的,那么我们可以抽取这种行为的声明,但是

不去实现该种行为,这时候这种行为我们称作为抽象的行为,我们就需要使用抽象类。

抽象类的好处:

强制要求子类一定要实现指定的方法。

抽象类要注意的细节:

1.如果一个函数没有方法体,那么该函数必须要使用abstract修饰,把该函数修饰成抽象的函数。

2.如果一个类出现了抽象的函数,那么该类也必须使用abstract修饰。

3.如果一个非抽象类继承了抽象类,那么必须要把抽象类的所有抽象方法全部实现。

4.抽象类可以存在非抽象方法,也可以存在抽象的方法.

5.抽象类可以不存在抽象方法的。

5.抽象类是不能创建对象的。

疑问:

为什么抽象类不能创建对象呢?

因为抽象类是存在抽象方法的,如果能让抽象类创建对象的话,那么使用抽象的对象

调用抽象方法是没有任何意义的。

6.抽象类是存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性的。

*/

//动物类--->抽象类

abstractclassAnimal{

Stringname;

Stringcolor;

publicAnimal(Stringname,Stringcolor){

this.name=name;

this.color=color;

}

//非抽象的方法

publicvoideat(){

System.out.println(name+"吃粮食");

}

//移动...

publicabstractvoidrun();

}

//狗是属于动物中一种

classDogextendsAnimal{

publicDog(Stringname,Stringcolor){

super(name,color);

}

publicvoidrun(){

System.out.println(name+"四条腿跑得很快...");

}

}

//鱼是属于动物中一种

classFishextendsAnimal{

publicFish(Stringname,Stringcolor){

super(name,color);

}

publicvoidrun(){

System.out.println(name+"摇摇尾巴游啊游!

");

}

}

classDemo3{

publicstaticvoidmain(String[]args)

{

/*

Dogd=newDog("牧羊犬","棕色");

d.run();

//创建一个鱼对象

Fishf=newFish("锦鲤","金黄色");

f.run();

*/

Animala=newAnimal();

}

}

/*

需求:

描述一个图形、圆形、矩形三个类。

不管哪种图形都会具备计算面积

与周长的行为,但是每种图形计算的方式不一致而已。

常量的命名规范:

全部字母大写,单词与单词之间使用下划线分隔。

abstract不能与以下关键字共同修饰一个方法:

1.abstract不能与private共同修饰一个方法。

2.abstract不能与static共同修饰一个方法。

3.abstract不能与final共同修饰一个方法。

*/

//abstract抽象

//图形类

abstractclassMyShape{

Stringname;

publicMyShape(Stringname){

this.name=name;

}

publicabstractvoidgetArea();

publicabstractvoidgetLength();

}

//圆形是属于图形类的一种

classCircleextendsMyShape{

doubler;

publicstaticfinaldoublePI=3.14;

publicCircle(Stringname,doubler){

super(name);

this.r=r;

}

publicvoidgetArea(){

System.out.println(name+"的面积是:

"+PI*r*r);

}

publicvoidgetLength(){

System.out.println(name+"的周长是:

"+2*PI*r);

}

}

classCircleextendsMyShape(){

doubler;

publicstaticfinaldoublePI=3.14;

publicCircle(Stringname,doubler){

super(name);

this.r=r;

}

publicvoidgetArea(){

System.out.println(name+"的面积是:

"+PI*r*r);

}

publicvoidgetLength(){

System.out.println(name+"的周长是:

"+2*PI*r);

}

}

//矩形属于图形中的一种

classRectextendsMyShape{

intwidt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1