- 浏览: 13385 次
- 性别:
最新评论
一、final关键字
final在java中表示的意思是最终,也可以称为完结器。可以使用final关键字声明类属性方法,在声明是需注意以下几点:
1)使用final声明的类不能有子类;
2)使用final声明的方法不能被子类所覆写;
3)使用final声明的变量即成为常量,常量不可以修改。
使用final声明的类不能有子类
使用final修饰的方法不能被子类覆写
被final修饰的变量即成为常量,常量不可以修改
二、static关键字
static是为静态的意思,也可称为全局。如果现在有些属性希望杯所有的对象共享,则就必须将其声明为static属性,而且一个属性使用了static关键字声明之后,可以直接使用类名称进行调用。如果一个鳄梨中的方法想由类调用,则可以声明为static方法。
1)用static声明的属性成为全局属性(也叫静态属性);
2)用static声明的方法有事被称为“类方法”,可以有类名称直接调用,且静态方法中用到的属性必须都是静态属性;
使用static声明属性
运行结果为:
下面同过一组图解来说明static声明的属性:
a)属性city未改变前
b) 属性city未改变后
以上程序已经基本完成了修改功能,如我们所知一个类中的公共属性现在由一个对象修改,这样是不合适的。类的公共属性应该由类进行修改是最合适的,因为我们不知道一个类中到底有多少个对象产生。所以在访问static属性时最好可以由类名直接调用,那么有事也就把使用static声明的属性称为类属性。
类属性调用的格式:类名称.static 属性名;上面的代码就可以改为:Person.city="SH"
使用static声明方法
运行结果为:
在以上程序中,Person类将所有的属性都进行封装,所以想要设置属性就必须使用setter()方法,但是这里的方法是使用static声明的,所以可以直接使用类名称调用。
特别要提的是,飞static生命的方法可以调用static声明的属性或方法。但是static声明的方法是不能调用非static类型声明的属性或方法。
使用static声明的方法调用非static方法和属性(错误代码)
final在java中表示的意思是最终,也可以称为完结器。可以使用final关键字声明类属性方法,在声明是需注意以下几点:
1)使用final声明的类不能有子类;
2)使用final声明的方法不能被子类所覆写;
3)使用final声明的变量即成为常量,常量不可以修改。
使用final声明的类不能有子类
//使用final定义类,不能被继承 final class Student{ } //错误,不能继承使用final声明的类 class Unstudent extends Student{ }
使用final修饰的方法不能被子类覆写
class Student{ //使用final定义的方法不能被覆写 public final void print(){ System.out.print("执行了"); } } class Unstudent extends Student{ //错误,不能覆写用final声明的方法 public final void print(){ System.out.print("成功了"); } }
被final修饰的变量即成为常量,常量不可以修改
calss Student{ //使用final声明的变量就是常量 private final String name="张三"; public void print(){ //错误,常量不能被修改 name="李斯" } }
二、static关键字
static是为静态的意思,也可称为全局。如果现在有些属性希望杯所有的对象共享,则就必须将其声明为static属性,而且一个属性使用了static关键字声明之后,可以直接使用类名称进行调用。如果一个鳄梨中的方法想由类调用,则可以声明为static方法。
1)用static声明的属性成为全局属性(也叫静态属性);
2)用static声明的方法有事被称为“类方法”,可以有类名称直接调用,且静态方法中用到的属性必须都是静态属性;
使用static声明属性
class Person { String name; int age; //用static修饰属性变量,则为常量 static String city="BJ"; //构造器传参 public Person(String name,int age){ this.name=name; this.age=age; } public void info(){ System.out.println("姓名:"+this.name+",年龄:"+this.age+",城市:"+city); } }; public class People{ public static void main(String args[]){ //实例化对象 Person p1=new Person("张三",25); Person p2=new Person("李斯",30); Person p3=new Person("王五",35); System.out.println("***********修改前*********"); p1.info(); p2.info(); p3.info(); System.out.println("***********修改后*********"); //重新给属性city赋值 p1.city="SH"; p1.info(); p2.info(); p3.info(); } }
运行结果为:
下面同过一组图解来说明static声明的属性:
a)属性city未改变前
b) 属性city未改变后
以上程序已经基本完成了修改功能,如我们所知一个类中的公共属性现在由一个对象修改,这样是不合适的。类的公共属性应该由类进行修改是最合适的,因为我们不知道一个类中到底有多少个对象产生。所以在访问static属性时最好可以由类名直接调用,那么有事也就把使用static声明的属性称为类属性。
类属性调用的格式:类名称.static 属性名;上面的代码就可以改为:Person.city="SH"
使用static声明方法
class Person { //对所有的属性进行封装 private String name; private int age; private static String city="BJ"; public Person(String name,int age){ this.name=name; this.age=age; } public void info(){ System.out.println("姓名:"+this.name+",年龄:"+this.age+",城市:"+city); } //使用static声明方法 public static void setcity(String c) { city=c; } public static String getCity(){ return city; } }; public class People{ public static void main(String args[]){ Person p1=new Person("张三",25); Person p2=new Person("李斯",30); Person p3=new Person("王五",35); System.out.println("***********修改前*********"); p1.info(); p2.info(); p3.info(); System.out.println("***********修改后*********"); //直接使用类名称调用 Person.setcity("SH"); p1.info(); p2.info(); p3.info(); } }
运行结果为:
在以上程序中,Person类将所有的属性都进行封装,所以想要设置属性就必须使用setter()方法,但是这里的方法是使用static声明的,所以可以直接使用类名称调用。
特别要提的是,飞static生命的方法可以调用static声明的属性或方法。但是static声明的方法是不能调用非static类型声明的属性或方法。
使用static声明的方法调用非static方法和属性(错误代码)
class Person{ private static string city="BJ"; private String name="张三"; public static void sPrint(){ //打印属性name(此处错误,不能调用非static属性) System.out.println("name="+name); //调用方法print(此处错误,不能调用非static方法) print(); } public void print(){ System.out.println("成功了"); } }
发表评论
-
线程的同步通信与线程范围内的数据共享问题
2013-10-02 22:05 1325线程的同步通信与线程范围内的数据共享问题一、线程的同步通信 什 ... -
多线程初谈——线程的创建与互斥问题
2013-10-01 18:13 1403多线程初谈——线程的创建与互斥 对于线程起初也很是不 ... -
网络通信见解之谈
2013-07-17 13:38 619一、网络通信的基本原理 现如今,出现了各式各样的聊天平 ... -
简单的bmp文件打开与保存
2013-07-01 22:24 884简单的bmp文件打开与保 ... -
分形浅谈——科赫曲线和L-System
2013-06-24 22:47 1233分形浅谈开始接触到分行图时,感觉很难,无法下手,只能做出第一层 ... -
对关键字的理解——访问权限
2013-05-10 16:17 598关键字public、pr ... -
队列的定义及运用
2013-03-23 14:58 645队列简称队,是限制在表的一端进行插入操作,而在表的另一端进行删 ... -
重绘方法的重写利用
2013-03-22 21:44 618重绘是为了在画布上保留原始痕迹的一种方法,他的目的是用来保存你 ... -
数组的定义及递归的运用
2013-03-22 21:43 1023一、数组有一维数组、 ... -
监听器与变量的作用域
2013-03-22 21:41 706监听器是用来实现一些可控操作的工具,如你在打开一个QQ界面的时 ... -
java中的继承
2013-03-08 00:31 566Java中的接口 什么是接口?不是以class定义的类而是以i ... -
Java中类的继承、重写、自动转型以及多态
2013-03-06 01:13 716Java中类的继承、重写、自动转型以及多态 1) 类的继承 在 ... -
java的构造器方法、方法重载和引用传递
2013-03-04 23:55 730Java的构造器方法、方法重载与引用传递 一、 构造器方法 构 ... -
JAVA语言中的类与对象
2013-03-04 00:08 732Java语 ...
相关推荐
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
本文主要给大家谈谈小编对java关键字final和static的理解,本文给大家介绍的较详细,需要的朋友参考参考下
通常,这类常量数据都是基本类型的数据,并赋予关键字final,同时在对此常量定义时需要进行赋值。 值得注意的是:对于基本类型,使用final关键字将使数值恒定不变;而对于对象引用,final则是使引用恒定不变。...
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
文章目录继承常用的关键字this关键字static关键字super关键字final关键字封装及权限修饰符封装的作用及其优点权限修饰符封装的使用细节多态多态的概念多态的使用要点对象的转型instanceof运算符类型自动提升及强制...
1、面向对象的理解 面向对象是基于面向过程的。在开发过程中,要完成特定的功能就去找相应的对象,如果找不到就创建相应的对象,使用对象,维护完善对象。 2、面向对象和面向过程的区别 面向过程强调的是功能行为; ...
5_关键字.md 6_反射.md 8_泛型.md JDK8新特性.md 正则表达式.md Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行。Java具有简单、可移植...
} public static void main(String[] args){ }}1、声明静态变量或者静态方法,使用static关键字。2、有static修饰的变量/方法,称为静态变量/方法3、没有static修饰变量/方法,称为实例变量/方法(Instance ...
除了构造方法之外,父类的所有 方法和属性都被子类的对象继承 多态性是不同的实例对象以不同的方式对相同的信息作出不同的表现 访问修饰符用于确定访问类成员的方式 Java 常用修饰符有 static、final、abstract 接口...
理解final关键字 java实例化对象的5种方式 1、用new语句直接创建对象,这是最常见的创建对象的方法。 2、通过工厂方法返回对象,如:String str = String.valueOf(23); 3、运用反射手段,调用java.
里面涵盖了PHP面向对像的所有的内容的详细讨论,让你对面向对象的概念有更深刻的理解.对于某些关键字的使用做了详细的分析其使用方式和注意的事项,如static , private ,public ,protected,final...等 等
28. 谈谈你对线程调度的理解 29. JDK动态代理和CGLIB动态代理 30. 反射机制以及反射的方式 31. 类加载有几种方式 32. Class.forName()和ClassLoader.loadClass()的区别 34. 如何防止创建的类名不能java为已有...
大家应该都明白静态方法/字段比普通方法/字段的写法要多一个static关键字,简单写下他们的写法吧,了解的可以直接略过 class Test{ // 静态变量 public static int id = 1; // 普通变量 public int usualId = 2;...
理解和使用关键字final。 理解包的概念。学会创建包,包中定义类,包外使用类。 掌握package(又称默认,友元)控制符,系统掌握4种访问控制符 第6章 面向对象(多态) 4课时 理解...
可见,final只对引用的"值"有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。至于它所指向的对象的变化,final是不负责的。这很类似==操作符:==操作符只负责引用的"值"相等,至于这个...
–static 是一个特殊的关键字,译为”静态”,所有有static 修饰的叫类属性,类方法,类成员. 定义构造器的语法格式 •[修饰符] 构造器名(形参列表) {……} –修饰符可以是public protected private 构造器...
11.2.4 理解final关键字 296 11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 299 11.3.3 protected:仅对子类和同包的类可见 300 11.3.4 ...
11.2.4 理解final关键字 296 11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 299 11.3.3 protected:仅对子类和同包的类可见 300 11.3.4 ...
30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。 答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System....