Java 基础语法笔记
来源:互联网 发布:网络统考英语过不去 编辑:程序博客网 时间:2024/06/05 17:13
参考 http://www.runoob.com/java/java-modifier-types.html
一个Java程序可以认为是一系列对象的集
运行 编译:
> javac xxx.java
,运行:> java xxx
类 类名首字母大写
方法 方法名首字母小写
源文件名 和类名相同
主方法入口
public static void main(String []args)
标识符
- 开头: A-Z,a-z,$,_
修饰符
- 访问控制修饰符:default, public, protected, private
- 非访问控制修饰符:final, abstract, strictfp
对象与类
对象 :类的实例
- 状态
- 行为
类 模版,一类对象的状态和行为
public class Dog{ //public 对子类可见, private在该类可见 String breed;//实例变量 int age; String color; static int all=0;//类变量 //方法 void barking(){} void hungry(){} void sleeping(){} public void setage(int dogage){ age = dogage; } public int getage(){ System.out.println("age is "+age); } //构造方法 public Dog(){} public Dog(String name){ System.out.println("Dog's name is "+ name); } //main public static void main(String []args){ //创建对象 Dog mydog = new Dog("tommy"); mydog.setage(2); mydog.getage(); }}
创建对象
声明对象名称、类型
实例化:用new创建一个对象
初始化:new 创建时调用构造方法初始化
Dog mydog = new Dog("tommy")
访问实例变量和方法
变量类型
type identifier [ = value][, identifier [= value] ...] ;
- 类变量:独立于方法之外的变量,用static修饰,静态变量
- 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
- 静态变量在程序开始时创建,在程序结束时销毁。
- 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。
- 静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。
- 实例变量:独立于方法之外的变量,没有static修饰
- 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。
- 实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量
- 局部变量:类方法中变量
Java 修饰符
访问控制修饰符
- 默认的,default,在同一包内可见,不使用任何修饰符。
- 私有的, private ,在同一类内可见。
- 共有的, public ,对所有类可见。
- 受保护的, protected ,对同一包内的类和所有子类可见。protected 访问修饰符不能修饰类和接口
非访问控制修饰符
- static
- final
- 能被显式地初始化并且只能初始化一次。
- 被声明为 final 的对象的引用不能指向不同的对象。
- 值可以改变
- abstract
- 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
- 如果一个类包含抽象方法,那么该类一定要声明为抽象类。
- 抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。
- 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
public abstract class SuperClass{ abstract viod m();//abstract function}class SubCass extends SuperClass{ void m(){ .... }}
- synchronized 同一时间只能被一个线程访问
- transient 序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。
- volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
结构
循环
while
for
do…while
do{ ...}while(布尔表达式) //即使不满足条件也至少执行一次
用于数组的 增强for
String [] names ={"James", "Larry", "Tom", "Lacy"}; for( String name : names ) { //声明语句:表达式 System.out.print( name ); System.out.print(","); }
- break
- continue
Java 流(stream),File, IO
控制台输入
Java 的控制台输入由 System.in 完成。
创建 BufferedReader:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Java 接口
- 接口可以被实现,无法被实例化
- 一个接口可以有多个方法。
- 接口文件保存在 .java 结尾的文件中,文件名使用接口名。
- 接口的字节码文件保存在 .class 结尾的文件中。
- 接口相应的字节码文件必须在与包名称相匹配的目录结构中。
- 接口中所有的方法必须是抽象方法。
- 接口不是被类继承了,而是要被类实现。
声明
[可见度] interface 接口名称 [extends 其他的类名] { // 声明变量 // 抽象方法}//隐式抽象,方法公有import java.lang.*;//引入包/* 文件名 : NameOfInterface.java */public interface NameOfInterface{ //任何类型 final, static 字段 //抽象方法}
Java package
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等
package pkg1[.pkg2[.pkg3…]];
一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。
以下是一些 Java 中的包:
- java.lang-打包基础的类
java.io-包含输入输出功能的函数
import
import package1[.package2…].(classname|*);
自定义Java标注
- @Override:只能用在方法之上的,用来告诉别人这一个方法是改写父类的。
- @Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上.
- @SuppressWarnings:这一个类型可以来暂时把一些警告信息消息关闭.
- 基础语法 【java笔记】
- java基础语法笔记
- Java 基础语法笔记
- java 基础语法(笔记)
- java语法基础学习笔记
- Java之基础语法笔记
- Java之基础语法笔记
- java学习笔记--基础语法
- Java SE学习笔记-Java基础语法
- Java笔记02-Java语法基础01
- Java笔记03-Java语法基础02
- Java笔记04-Java语法基础03
- Java学习笔记02 Java语法基础
- Java笔记 第二章 Java语法基础
- Java基础笔记:Java的基本语法
- java学习笔记:java语法基础(存疑)
- Java学习笔记:java基础语法
- JAVA学习笔记-JAVA基础语法
- ReactiveCocoa入门教程--第二部分
- 使用 iOS 8 Spring Animation API 创建动画
- python核心编程练习拾遗
- 直插排序
- (6)位运算
- Java 基础语法笔记
- 操作系统位数与数据字节数的关系
- 为什么商业智能和设计理论必须统一
- javascript: ; & javascript:void(0);
- git 生成公钥和私钥
- ExoPlayer实现截图功能和设置画面比例功能
- jvm内存模型
- pwm预习报告
- Popular Cows