java中的关键字以及规范
来源:互联网 发布:aim 霹雳 知乎 编辑:程序博客网 时间:2024/05/21 19:41
Static关键字
由Static修饰的变量、常量和方法被称作静态方法、静态变量、静态常量。
有时在处理问题时,会需要两个类在同一内存区域共享一个数据。不必要再设置两个变量,这时就可以将这个常量设置为静态的。
Static修饰符表示静态的,可修饰字段.方法.内部类,其修饰的成员属于类,也就是说static的资源属于类级别,而不是对象级别.可以在本类或其他类使用类名和“.”运算符调用静态成员。
Static的真正作用:用来区别字段,方法,内部类,初始化代码块是属于对象还是属于类本身
◆Static修饰方法
用类名.方法名可以直接调用该方法不用Static修饰的方法
◆Static修饰属性
由类创建的对象,都共用这一属性类变量随类变量的加载而加载,即使此类还未new过对象,这个类变量也存在,而且仅一份.
◆不用Static修饰的方法
与方法有关
◆不用Static修饰的属性
必须实例化一个类的对象使用对象.方法才可以调用如果使用类名.方法名调用会产生错误:无法从静态上下文中引用非静态方法
■类成员
使用static修饰的成员在静态方法中,只能调用static成员(不能使用类.非static属性来调用属性)(无法从静态上下文中引用非静态方法)
■实例成员(对象实例化)
没有使用static修饰的成员非静态方法中,可以访问静态成员,也可以访问实例成员.(可以直接使用类.属性名来调用属性)
Example
public class TestStatic { //属性 static int age=10; //属于类 在方法区 //当前类的对象,也可以访问静态成员 int weigh=100; //属于对象 //类成员 static void method(){ } public static void main(String[] args) { TestStatic s=new TestStatic(); //使用类名.属性调用 System.out.println(TestStatic.age); //直接调用static修饰的变量 System.out.println(age); //使用对象.属性来赋值 s.age=11; System.out.println(age); //作用类名.属性来赋值 TestStatic.age=100000; System.out.println(age); //一般情况下,我们可以通过类名可以直接访问到类成员 类名.成员 s.method(); //类不能访问对象成员 }}
This关键字
表示当前对象.
this主要存在于两个位置:
构造器中: 就表示当前创建的对象.
方法中: 哪一个对象调用this所在的方法,那么此时this就表示哪一个对象.
当一个对象创建之后,JVM会分配一个引用自身的引用:this.
this内存分配
this的使用归纳
使用this:① 解决成员变量和参数(局部变量)之间的二义性,必须使用;② 同类中实例方法间互调(此时可以省略this,但是不建议省略)。③ 将this作为参数传递给另一个方法;④ 将this作为方法的返回值(链式方法编程);⑤ 构造器重载的互调,this([参数])必须写在构造方法第一行;⑥ static不能和this一起使用; 当字节码被加载进JVM,static成员以及存在了. 但是此时对象还没有创建,没有对象,就没有this.
Practice NewBook
public class NewBook { private String title; //定义书名 private String author; //定义作者 private double price; //定义价格 //利用构造方法初始化域 public NewBook(String title,String author,double price){ this.title=title; this.author=author; this.price=price; } public String getTitle(){ //获得书名 return title; } public String getAuthor(){ //获得作者 return author; } public double getPrice(){ //获得价格 return price; }}
NewTest
public class NewTest { public static void main(String[] args) { //创建对象 NewBook book=new NewBook("Java从入门到精通", "明日科技", 59.2); //输出书名 System.out.println("书名:"+book.getTitle()); //输出作者 System.out.println("作者:"+book.getAuthor()); //输出价格 System.out.println("价格:"+book.getPrice()); }}
JavaBean规范
JavaBean 是一种JAVA语言写成的可重用组件(类).
必须遵循一定的规范:
1):类必须使用public修饰.
2):必须保证有公共无参数构造器,即使手动提供了带参数的构造器,也得提供无参数构造器..
3):包含了属性的操作手段(给属性赋值,获取属性值).
getter,setter方法
字段: private String name;getter方法: 仅仅用于获取某一个字段存储的值.//去掉get,把首字母小写,得到name1.此时name1才是属性.public String getName1(){ return name;//返回name字段存储的值}如果操作的字段是boolean类型的,此时不应该叫做getter方法,而是is方法,把getName 变成isName.setter方法:仅仅用于给某一个字段设置需要存储的值.public void setName1(String n){ name = n;//把传过来的n参数的值,存储到name字段中}每一个字段都得提供一对getter/setter.
Demo MoBike
public class MoBike { private String Color; private int speed; private int size; private boolean money; private double wheel; /* * 设置颜色 * 获得颜色 */ public void setColor(String color1){ Color=color1; } public String getColor(){ return Color; } /* * 设置speed * 获得speed */ public void setSpeed(int speed1){ if(speed1>40){ System.out.println("速度过高请减速"); return ; } speed=speed1; } public int getSpeed(){ return speed; } /* * 设置大小 * 获得大小 */ public void setSize(int size1){ size=size1; } public int getSize(){ return size; } /* * 设置是否有钱 * 获得是否有钱 */ public void setMoney(boolean boolean1){ money=boolean1; } public boolean isMoney(){ return money; } /* * 设置轮子数 * 获得轮子数 */ public void setWheel(double x){ wheel=x; } public double getWheel(){ return wheel; }}
Demo MoBikeTest
public class MoBikeTest { public static void main(String[] args) { MoBike M=new MoBike(); M.setColor("blue"); System.out.println(M.getColor()); M.setSpeed(60); System.out.println(M.getSpeed()); M.setSize(50); System.out.println(M.getSize()); M.setMoney(true); System.out.println(M.isMoney()); M.setWheel(1.232); System.out.println(M.getWheel()); }}
final
final本身的含义是“最终的,不可改变的“,它可以修饰非抽象类,非抽象方法和变量。
注意:构造方法不能使用final修饰,因为构造方法不能被继承,肯定是最的。
abstract抽象类也不能被final修饰,因为abstract是要被继承的。
final修饰符与其他修饰符之间是没顺序的。
final修饰类的特点
表示最终的类,该类不再有子类只要满足以下条件就可以把一个子类设计成final类: 1,某类不是专门为继承而设计。 2,出于安全考虑,类的实现细节不许改动不准修改源代码。 3,确信该类不会再被拓展。
final修饰方法的特点
使用final修饰的方法,如果该类被继承,这个方法是能被其子类调用的,但是不能被重写。
final修饰的变量
用final修饰的字段,只能被赋值一次。
基本类型变量
使用final修饰的基本数据类型的值只能被赋值一次,并且是在声明变量时赋值。
引用类型变量
使用final修饰的引用数据类型的变量,其引用地址只能被赋值一次。但是其对象中属性的值还是可以被修改的。
package
关键字:package ,专门用来给当前Java文件设置包名.语法格式: package 包名.子包名.子子包; 注意:必须把该语句放在Java文件中第一行代码(所有代码之前).
命名的规范
◎变量名的规范
在java中既要遵守变量的命名法则(合法法则),还要遵守约定俗成的规范(驼峰是命名法)
Java变量的基本命名法则: 1、以下划线、字母、美元符开头。 2、后面跟下划线、字母、美元符以及数字。 3、 没有长度限制(但也不能太长!)。 4、对大小写敏感(意思是大小写代表不同含义)Java驼峰式命名法: 1、变量名必须为有意义的单词 2、变量名如果只有一个单词,则小写 3、如果有2个以及多个单词,则从第二个单词开始首字母大写 Demo $ad abc ajhs01 play $play01 playGame
◎方法名的规范
方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。示例:run(); runFast(); getBackground();
◎类名的规范
命名规则:类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)示例:class Raster;class ImageSprite;
◎包名的规范
自定义的包名,不能以java.打头,因为Java的安全机制会检查. 1>:包名必须遵循标识符规范/全部小写. 2>:企业开发中,包名采用公司域名倒写. 比如:package com.hnqy; 格式: package 域名倒写.模块名.组件名;
◎接口(Interfaces)规范。
命名规则:大小写规则与类名相似示例:interface RasterDelegate;interface Storing;
◎实例变量(Instance Variables)规范
大小写规则和变量名相似,除了前面需要一个下划线。示例:int _employeeId;String _name;Customer _customer;
◎常量(Constants)规范
在JAVA代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。也就是 说,程序中除0,1以外,尽量不应该出现其他数字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含 义。常量的声明,应该全部大写,单词间用下划线隔开。示例:static final int MIN_WIDTH = 4;static final int MAX_WIDTH = 999;static final int GET_THE_CPU = 1;
- java中的关键字以及规范
- Java中的操作符以及关键字
- Java--Java中的关键字
- java中的命名规范
- Java中的命名规范
- JAVA中的命名规范
- java中的命名规范
- java中的编码规范
- java中的命名规范
- Java中的Abstract关键字
- Java中的instanceof关键字
- Java中的instanceof关键字
- Java中的strictfp关键字
- java中的关键字
- Java中的instanceof关键字
- Java中的synchronized关键字
- Java中的static关键字
- JAVA中的static关键字
- JSP九种内置对象、四个作用域
- 安装tensorflow
- 数学之美
- 命令行下切换路径
- c++第五节课 多态
- java中的关键字以及规范
- hive基本结构与数据存储
- Spring的定时任务@Scheduled,部署后执行加载两次
- python简单练习2
- RHC-124-第一节
- Qt 为.h和.cpp文件添加ui文件
- VS2012和Halcon混合编程之环境配置
- C语言基础——循环性结构
- leetcode 216. Combination Sum III