java自学语法_Java自学笔记(一):基础知识

目录

第一个Java程序

public class HelloWorld { //类名必须与文件名相同

public static void main(String[] args) {

System.out.println("HelloWorld");

}

}

基本概念

java是面对对象语言

类,包含状态和行为

对象,类的一个实例

实例变量

方法,就是动作

继承,类A继承类B中原有的属性和方法,也即B派生A。被继承的称为超类(super class);继承的称为子类(subclass)

接口

重写(Override)与重载(Overload)

多态

抽象类

封装

知识点或注意事项

类名第一个字母是大写,方法名的第一个字母是小写

主方法入口:每个程序都是以public static void main(String[] args)开始运行的

String而非string

函数体后面不加分号

一个源文件只能有一个public类,可以有多个非public类。public类名必须与源文件的名字一致。源文件开头一行是package名。如果要用到import语句,应该放在package名后面

顺序:java project->package->class;package对各个class进行归类,引入package用import

&或|或~是位运算符;&&或||或!是逻辑运算符

instanceof:该运算符用于操作对象实例,检查该对象是否是一个特定类型

基本语法

修饰符,修饰类中方法和属性

访问控制修饰符 : default, public , protected, private

default:默认态,在定义时若没有特指访问控制,则默认是default,不能跨package

public:公共态,可跨class也可跨package

protected:受保护态,对同一包内的类和所有子类可见。只能被类本身以及子类访问,如果子类在别的package也是可以访问的

private:私有态,只能被自身的class访问,不能跨class和跨package

非访问控制修饰符 : final, abstract, static, synchronized

static 修饰符,用来修饰类方法和类变量。修饰变量:用来声明独立于对象的静态变量;修饰方法:静态方法不能使用类的非静态变量

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

abstract 修饰符,用来创建抽象类和抽象方法;声明抽象类的唯一目的是为了将来对该类进行扩充。

synchronized 和 volatile 修饰符,主要用于线程的编程。

变量(注意,变量使用之前需要声明,不同于python)

局部变量,块内的临时变量

类变量(静态变量),类变量在类中,方法体之外,但必须声明为 static 类型,大多数是public类型;无论一个类创建了多少个对象,类只拥有类变量的一份拷贝,且

成员/实例变量(非静态变量),定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化;一般情况下一般把该变量设为private,设定方法来访问它

注释

单行注释:

\\注释文字

\* 注释文字 *\

多行注释:

\*注

字*\

基本数据类型

内置数据类型:byte, short, int, long, float, double, boolean, char

引用数据类型:类似指针,默认值null,比如可以用来指向一个对象

常量:final+常量定义,最好用大写来与变量区分;数字前缀0表示八进制,0x表示十六进制

数据类型转换:自动或强制类型转换

自动类型转换:

低 ------------------------------------> 高

byte,short,char—> int —> long—> float —> double

强制类型转换:

doubel a = 1.23;

int b = (int)a;

//b=1;

循环结构

while(xxx){ }

do{ } while(xxx)

for(xxx) { } 或 for (x: [1,2,3]) { }

break; continue

其他语句结构:if,else; switch,case;

流(Stream)、文件(File)和IO(这些还没细看,用的时候再看)

Java内置包装类

Java内置包装类(类中也内置了很多方法;import java.util.*;)

- Number类

- Math类

- Character类

- String类;长度:a.length();连接字符串:a.concat(b)

- StringBuffer和StringBuilder类:对字符串进行修改

- Data类,表示时间;更复杂的是Calendar类

- Scanner类:输入类

-。。。

Data类:

long start = System.currentTimeMillis( );

long end = System.currentTimeMillis( );

long diff = end - start;

System.out.println("Difference is : " + diff);

Scanner类:

Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:

import java.util.Scanner;

public class ScannerDemo {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

// 从键盘接收数据

// next方式接收字符串

System.out.println("next方式接收:");

// 判断是否还有输入

if (scan.hasNext()) {

String str1 = scan.next();

System.out.println("输入的数据为:" + str1);

}

scan.close();

}

}

数组

声明定义

一维:

int[] a = new int[3]; //首选int[] a格式,而不是int a[]格式

int a[] = new int[3];

int[] a = (1,2,3);

二维:

double[][] a1 = new double[2][2];

赋值

循环

普通循环

for-each

for(int x:a)

{x...}

数组作为函数参数

f(int[] array){ }

数组类:Arrays,方便操作数组

异常处理

需要的时候再看

枚举

定义:枚举(enum)是一个特殊的类,一般包含一组常量(和若干方法),其中构造方法只能是private。

enum Color

{

RED, GREEN, BLUE;

}

public class Test

{

// 执行输出结果

public static void main(String[] args)

{

Color c1 = Color.RED;

System.out.println(c1);

}

}

迭代枚举元素

for (Color myVar : Color.values()) {

System.out.println(myVar);

}

内置方法 values(), ordinal() 和 valueOf()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值