------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、
期待与您交流! ----------
一、final修饰符
final : 最终,作为一个修饰符
1,可以修饰类,函数,变量。
2,被final修饰的类不可以被继承,为了避免被继承,被子类复写功能。
3,被final修饰的方法不可以被复写
4,被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量。也可 以修饰局部变量。 当在描述事物时,一些数据的出现值是固定的。那
么这时w为了增强阅读性,都给这些值取个名字,方便于阅读。而这个值不 需要改变。所以加上final修饰。作为常量:常量的书写规范所有字母都大 写。如
果由多个单词组成。单词通过下划线(_)连接。
5,内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变 量。
二、abstract
当多个类中出现相同功能。但是功能主题不同
这时可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主题
抽象类的特定:
1,抽象方法一定定义在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为抽象方法没意义。
4,抽象方法没有方法体
5,抽象类中的抽象方法要被使用,必须由子类写所有的抽象方法后,建立子类对象调用。如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类
抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法
抽象类不可以实例化
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。
示例代码:
三、interface
class用于定义类
interface用于定义接口
接口定义是,格式特点:
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符。
常量:public static final
方法:public abstract
记住:接口中的成员都是public的。
接口:是不可以创建对象的。因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化。
否则子类是一个抽象类
接口可以被类多实现。也是对多继承不支持的转换形式。java支持多实现。
java中类、接口和抽象类之间的关系。
类与类是继承关系
类与接口是实现关系
接口与接口是继承关系
Java中在接口的应用中,要注意一下几点:
<1>接口一般定义的是常量和一些抽象方法。抽象类中可以包含抽象方法,也可以有非抽象方法,但是有抽象方法的类一定是抽象类。抽象方法不能有方法体。
<2>在引用接口时,接口的引用指向实现的对象,尽量定义为接口或父类的引用。这其中有可能用到多态的知识。引用接口用implements。
<3>接口(interface)只能定义抽象方法而且默认为是Public。常量是public static final 修饰的
<4>通过implements来引用接口。例:Class runnrtmp inplements runner.
<5>多个无关类可以实现一个接口,!!!!接口的引用指向实现的对象。
<6>一个类可以实现多个无关的接口(这点和继承要有所区别)
<7>和继承一样,接口与实现类之间存在多态性。
<8>接口可以继承其他的接口,并添加新的属性和抽象方法。
<9>在类中实现接口的方法时必须加上public修饰符
四、main
public static void main(String[] args)
主函数:是一个特殊的函数。作为程序的入口。可以被JVM调用
主函数的定义:
public:代表着该函数访问权限是最大的。
static:代表主函数随着类的加载就已经存在了。
void:主函数没有具体的返回值。
main:不是关键字,但是是一个特殊的单词,可以被JVM识别。
(String[] args):函数的参数。参数类型是一个数组。该数组中的元素是字符串。字符串类型的数组。
主函数是固定格式的:JVM识别。
JVM在调用主函数时,传入的是new String[0];
五、成员变量和局部变量
成员变量和局部变量
作用范围
成员变量作用于整个类中
局部变量作用于函数中。或者语句中
在内存中的位置;
成员变量。在堆内存中。因为对象的存在,才在内存中存在。
局部变量:存在栈内存中
六、覆盖
2.子父类中的函数。
当子类出现和父类一模一样的函数是,
当子类对象调用该函数。会运行子类函数的美容。
如同父类的函数被覆盖一样。
这种情况是函数的另一个特性:重写(覆盖);
当子类继承父类。沿袭了父类的功能,到子类中。
但是子类虽具备该功能,但是功能的内容却和父类中的不一致
这时,没有必要定义新功能,而是使用覆盖特性,保留父类的功能定义,并重写功能内容。
覆盖的注意事项:
1,子类覆盖父类,必须保证子类权限大于等于父类权限。否则编译失败。
2,静态只能覆盖静态。
大家记住了:
重载:只看函数的参数列表。
重写:子父类要一模一样
七、private
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数).
私有化的数据只在本类中有效。
将成员变量私有化以后。类以外技术建立了对象也不能直接访问。
需要注意的是:私有仅仅只是封装的一种表现形式。
之所以队伍提供访问方式。就以为可以在访问方式中加入逻辑判断等语句。
对访问的数据进行操作。提高代码健壮性。
八、静态
静态:static
用法:是一个修饰符,用于修饰成员(成员变量和成员函数)
当成员被静态修饰后。就多了一个调用方式,除了可以被对象调用外,
还可以直接被类名调用,类名。静态成员
static特点:
1,随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明它的生命周期最长。
2,优先于的对象存在
明确一点:静态是先存在,对象是后存在的。
3,被所有对象所共享
4,可以直接被类名所调用。
实例变量和类变量的区别:
1,存放位置。
类变量(静态的成员变量)随着类的加载而存在于方法区中。
实例变量(非静态成员变量)随着对象的建立而存在于堆内存中。
2生命周期:
类变量的生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失
静态的注意事项:
1,静态方法只能访问静态成员
非静态方法既可以访问静态也可以访问非静态
2,静态方法中不可以定义this、super关键字。
因为静态优先于对象存在,所以静态方法中不可以出现this。
3,主函数是静态的
静态有利有弊
利处:对对象的共享进行单独空间的存储,节省空间。没有必要每一个对象中 都存储一份。
可以直接被类名调用。
弊端:生命周期过长。
访问出现局限性(静态虽好。但是只能访问静态)
什么时候使用静态?
要从两方面下手;
因为静态修饰的内容有成员变量和函数。
什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰。
对象中的特有数据要定义成非静态存在于堆内存中。
什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据)。
那么该功能可以定义成静态的。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a
href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>
期待与您交流! ----------
一、final修饰符
final : 最终,作为一个修饰符
1,可以修饰类,函数,变量。
2,被final修饰的类不可以被继承,为了避免被继承,被子类复写功能。
3,被final修饰的方法不可以被复写
4,被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量。也可 以修饰局部变量。 当在描述事物时,一些数据的出现值是固定的。那
么这时w为了增强阅读性,都给这些值取个名字,方便于阅读。而这个值不 需要改变。所以加上final修饰。作为常量:常量的书写规范所有字母都大 写。如
果由多个单词组成。单词通过下划线(_)连接。
5,内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变 量。
二、abstract
当多个类中出现相同功能。但是功能主题不同
这时可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主题
抽象类的特定:
1,抽象方法一定定义在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为抽象方法没意义。
4,抽象方法没有方法体
5,抽象类中的抽象方法要被使用,必须由子类写所有的抽象方法后,建立子类对象调用。如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类
抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法
抽象类不可以实例化
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。
示例代码:
abstract class GetTime{
public final void getTime(){
lang start = System.currentTimeMillis();
runcode();
lang end = System.currentTimeMillis();
System.out.println((end-start)+"毫秒");
}
public abstract void runcode();
}
class SubTime extends GetTime{
public void runcode(){
for(int i = 0;i<1000;i++){
System.out.print(i);
}
}
}
public class Test{
public static void main(String args []){
Test s = new Test();
s.getTime();
}
}
三、interface
class用于定义类
interface用于定义接口
接口定义是,格式特点:
1,接口中常见定义:常量,抽象方法。
2,接口中的成员都有固定修饰符。
常量:public static final
方法:public abstract
记住:接口中的成员都是public的。
接口:是不可以创建对象的。因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化。
否则子类是一个抽象类
接口可以被类多实现。也是对多继承不支持的转换形式。java支持多实现。
java中类、接口和抽象类之间的关系。
类与类是继承关系
类与接口是实现关系
接口与接口是继承关系
Java中在接口的应用中,要注意一下几点:
<1>接口一般定义的是常量和一些抽象方法。抽象类中可以包含抽象方法,也可以有非抽象方法,但是有抽象方法的类一定是抽象类。抽象方法不能有方法体。
<2>在引用接口时,接口的引用指向实现的对象,尽量定义为接口或父类的引用。这其中有可能用到多态的知识。引用接口用implements。
<3>接口(interface)只能定义抽象方法而且默认为是Public。常量是public static final 修饰的
<4>通过implements来引用接口。例:Class runnrtmp inplements runner.
<5>多个无关类可以实现一个接口,!!!!接口的引用指向实现的对象。
<6>一个类可以实现多个无关的接口(这点和继承要有所区别)
<7>和继承一样,接口与实现类之间存在多态性。
<8>接口可以继承其他的接口,并添加新的属性和抽象方法。
<9>在类中实现接口的方法时必须加上public修饰符
四、main
public static void main(String[] args)
主函数:是一个特殊的函数。作为程序的入口。可以被JVM调用
主函数的定义:
public:代表着该函数访问权限是最大的。
static:代表主函数随着类的加载就已经存在了。
void:主函数没有具体的返回值。
main:不是关键字,但是是一个特殊的单词,可以被JVM识别。
(String[] args):函数的参数。参数类型是一个数组。该数组中的元素是字符串。字符串类型的数组。
主函数是固定格式的:JVM识别。
JVM在调用主函数时,传入的是new String[0];
五、成员变量和局部变量
成员变量和局部变量
作用范围
成员变量作用于整个类中
局部变量作用于函数中。或者语句中
在内存中的位置;
成员变量。在堆内存中。因为对象的存在,才在内存中存在。
局部变量:存在栈内存中
六、覆盖
2.子父类中的函数。
当子类出现和父类一模一样的函数是,
当子类对象调用该函数。会运行子类函数的美容。
如同父类的函数被覆盖一样。
这种情况是函数的另一个特性:重写(覆盖);
当子类继承父类。沿袭了父类的功能,到子类中。
但是子类虽具备该功能,但是功能的内容却和父类中的不一致
这时,没有必要定义新功能,而是使用覆盖特性,保留父类的功能定义,并重写功能内容。
覆盖的注意事项:
1,子类覆盖父类,必须保证子类权限大于等于父类权限。否则编译失败。
2,静态只能覆盖静态。
大家记住了:
重载:只看函数的参数列表。
重写:子父类要一模一样
七、private
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数).
私有化的数据只在本类中有效。
将成员变量私有化以后。类以外技术建立了对象也不能直接访问。
需要注意的是:私有仅仅只是封装的一种表现形式。
之所以队伍提供访问方式。就以为可以在访问方式中加入逻辑判断等语句。
对访问的数据进行操作。提高代码健壮性。
八、静态
静态:static
用法:是一个修饰符,用于修饰成员(成员变量和成员函数)
当成员被静态修饰后。就多了一个调用方式,除了可以被对象调用外,
还可以直接被类名调用,类名。静态成员
static特点:
1,随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明它的生命周期最长。
2,优先于的对象存在
明确一点:静态是先存在,对象是后存在的。
3,被所有对象所共享
4,可以直接被类名所调用。
实例变量和类变量的区别:
1,存放位置。
类变量(静态的成员变量)随着类的加载而存在于方法区中。
实例变量(非静态成员变量)随着对象的建立而存在于堆内存中。
2生命周期:
类变量的生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失
静态的注意事项:
1,静态方法只能访问静态成员
非静态方法既可以访问静态也可以访问非静态
2,静态方法中不可以定义this、super关键字。
因为静态优先于对象存在,所以静态方法中不可以出现this。
3,主函数是静态的
静态有利有弊
利处:对对象的共享进行单独空间的存储,节省空间。没有必要每一个对象中 都存储一份。
可以直接被类名调用。
弊端:生命周期过长。
访问出现局限性(静态虽好。但是只能访问静态)
什么时候使用静态?
要从两方面下手;
因为静态修饰的内容有成员变量和函数。
什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰。
对象中的特有数据要定义成非静态存在于堆内存中。
什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据)。
那么该功能可以定义成静态的。
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a
href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>