JAVA学习笔记(1)

什么是JAVA

什么是JAVA?不就是杯咖啡吗(○` 3′○)( 谁说的,有可能还是个妹子╰( ̄ω ̄o)(((

java是纯面向对象编程的语言。亲身经历:学JAVA无法解决单身问题

如何理解面向对象编程?

以下转自博客园的这个帖子

例如我们设计一个桌球游戏(略过开球,只考虑中间过程)

A:面向过程方式思考:

把下述的步骤通过函数一步一步实现,这个需求就完成了。(只为演示概念,不细究逻辑问题)。

① palyer1 击球 —— ② 实现画面击球效果 —— ③ 判断是否进球及有效 —— ④ palyer2击球

⑤ 实现画面击球效果 —— ⑥ 判断是否进球及有效 —— ⑦ 返回步骤 1—— ⑧ 输出游戏结果

B:面向对象方式思考:

经过观察我们可以看到,其实在上面的流程中存在很多共性的地方,所以我们将这些共性部分全集中起来,做成一个通用的结构

  1. 玩家系统:包括 palyer1 和 palyer2
  2. 击球效果系统:负责展示给用户游戏时的画面
  3. 规则系统:判断是否犯规,输赢等

我个人结合博客园帖子的理解:

面向对象更像是做一个锤子,一个普遍性工具,一个实现循环显示数字的代码可以到多个地方应用,比如显示数字,让小灯循环亮起。需要这个功能调用这个类就可以了,方便快捷。但是缺点显而易见的,锤子不可能适合砸所有东西,这样面向对象也是,需要对应的库来实现。

面向过程更像是定制化,效率高,但是添加新东西,需要写代码,相当于造一个专用的扳手。

向世界问好

代码

public class HelloWorld{  //JAVA系统的类,文件名必须和类名相同
	public static void main(String[]args){   //定义main方法(函数),一个 java 程序运行必须而且有且仅有一个 main 方法。JAVA程序开始,String(str)表明数据类型,args表示数组
		System.out.println("hello,world"); //显示HelloWorld
	}  //注意:方法必须用大括号括起来
}
注意: Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的

编译JAVA

win+R进入命令行,cd到Java文件所在目录,输入 javac + 文件名(带扩展名)编译。

运行

编译完成后,输入java + 文件名(不带后缀),运行

可能出现的问题

有的时候编译完成,运行,会出现这样的问题,那是编码方式不对。

就需要修改编码格式

另存为ANSI格式即可正常运行

安装Eclipse

任何东西只要娘化就会非常有趣,比如Eclipse娘 所以这才是程序员真正的快乐吗?

具体的安装可以参考这个教程:

Eclipse安装使用教程!

JAVA基本语法

分隔符

分号(“;”)(英文):语句结束标记,for循环看分割不同成分 。

圆点(“.”):用于分割“类”中的函数,可以理解为Python里的 os.listdir 这段里圆点的作用(调用OS模块里面的listdir函数)

空格(” “):分割源代码里的不同部分,例如 int a; int b;

花括号(“}”):用于限定某一部分的范围,成对使用

例如:

public class Text {   
	piblic static void main (String[]args){
	   	   System.out.println("Hello");

	}
}

标识符

起到表示作用的符号。(用来给类、对象、方法、变量、接口和自定义数据类型命名的。)

命名规则:由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。

例如:

myName,My_name,Points,$points,_sys_ta,OK,_23b,_3_

非法标识符:

#name,25name,class,&time,if

JAVA关键字

Java关键字类别Java关键字关键字含义
访问控制private一种访问控制方式:私用模式,访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)
访问控制protected一种访问控制方式:保护模式,可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符
访问控制public一种访问控制方式:共用模式,可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。
类、方法和变量修饰符abstract表明类或者成员方法具有抽象属性,用于修改类或方法
类、方法和变量修饰符class声明一个类,用来声明新的Java类
类、方法和变量修饰符extends表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
类、方法和变量修饰符final用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
类、方法和变量修饰符implements表明一个类实现了给定的接口
类、方法和变量修饰符interface接口
类、方法和变量修饰符native用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
类、方法和变量修饰符new用来创建新实例对象
类、方法和变量修饰符static表明具有静态属性
类、方法和变量修饰符strictfp用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
类、方法和变量修饰符synchronized表明一段代码需要同步执行
类、方法和变量修饰符transient声明不用序列化的成员域
类、方法和变量修饰符volatile表明两个或者多个变量必须同步地发生变化
程序控制break提前跳出一个块
程序控制continue回到一个块的开始处
程序控制return从成员方法中返回数据
程序控制do用在do-while循环结构中
程序控制while用在循环结构中
程序控制if条件语句的引导词
程序控制else用在条件语句中,表明当条件不成立时的分支
程序控制for一种循环结构的引导词
程序控制instanceof用来测试一个对象是否是指定类型的实例对象
程序控制switch分支语句结构的引导词
程序控制case用在switch语句之中,表示其中的一个分支
程序控制default默认,例如:用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
错误处理try尝试一个可能抛出异常的程序块
错误处理catch用在异常处理中,用来捕捉异常
错误处理throw抛出一个异常
错误处理throws声明在当前定义的成员方法中所有需要抛出的异常
包相关import表明要访问指定的类或包
包相关package
基本类型boolean基本数据类型之一,声明布尔类型的关键字
基本类型byte基本数据类型之一,字节类型
基本类型char基本数据类型之一,字符类型
基本类型double基本数据类型之一,双精度浮点数类型
基本类型float基本数据类型之一,单精度浮点数类型
基本类型int基本数据类型之一,整数类型
基本类型long基本数据类型之一,长整数类型
基本类型short基本数据类型之一,短整数类型
基本类型null空,表示无值,不能将null赋给原始类型(byte、short、int、long、char、float、double、boolean)变量
基本类型true真,boolean变量的两个合法值中的一个
基本类型false假,boolean变量的两个合法值之一
变量引用super表明当前对象的父类型的引用或者父类型的构造方法
变量引用this指向当前实例对象的引用,用于引用当前实例
变量引用void声明当前成员方法没有返回值,void可以用作方法的返回类型,以指示该方法不返回值
保留字goto保留关键字,没有具体含义
保留字const保留关键字,没有具体含义,是一个类型修饰符,使用const声明的对象不能更新
JAVA关键字

上表转自此帖子

注释

单行注释

public class Text{ //这是单行注释

多行注释

public class Text{
    public static viod main (String[]args){/*这是多行注释
这是多行注释*/
        System.out.println("hello,world");
   }
}

文档注释

/**
这是文档注释
这是文档注释
*/
public class HelloWorld{  
	public static void main(String[]args){  
		System.out.println("hello,world"); 
	} 
}

JAVA数据类型

基本数据类型

整型

byte , short , int , log

//整型
int a = 1 ; 
byte b = 2 ; // 最大表示到127
short c = 3 ;
long d = 4 ;
	

浮点型

float , double

//浮点型
double e = 0.1; //双精度浮点型
float f = 0.2f ; //单精度浮点型

double e1 = 0.1d;
定义double可以加d, 例如 double a = 0.455d

字符型

char型,单个符号,需要用单引号引起来

//字符型
char c1 = 'R';
char c2 = 'T';

如果使用字符串 String,不会报错,但是不会输出(String数据类型是引用数据类型)

String A = "String" //字符串,记得用双引号引起来
在JAVA中,字符可以定义成为字符串,整体的字符有些可以定义成字符,例如换行符 “\n”

布尔类型

true 和 false

boolean b1 = true ;
boolean b2 = false ;

代码表示

//整型
int a = 1 ;
byte b = 2 ;
short c = 3 ;
long d = 4 ;
	
	
//浮点型
double e = 0.1;
float f = 0.2f ;
//在JAVA中,如果定义float类型,需要后面加个f,否则会默认转化为double类型		
		
//字符型
char g = 'G';


//布尔型
boolean h = true;

//字符串
String i = "Hedio_Kojima" 

引用数据类型

类(对象)

接口

数组

常量和变量

常量

常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等。

整型常量

整型常量是整数类型的数据。它的表现有四种:

二进制,八进制,十进制,十六进制

例如:

二进制1111
八进制 17
十进制 15
十六进制f
整型常量
int i1 = 012 ; //八进制常量,以0开始
int i2 = 0x12 ; //十六进制常量,以0x开始
int i3 = 10 ; // 十进制常量,以0开始

浮点数常量

浮点数常量就是在数学中用到的小数。分为单浮点(float)和双浮点(double)。

例如

0.2233f

0.2333d

布尔常量

只有两个值, ture (真) 和 false (假)

字符常量

字符型常量值是用单引号引起来的一个字符,例如 ‘e’ , ‘a’ , ‘E’。

与Python不同的是,JAVA里的单引号和双引号不能混用,双引号是用来表示字符串的

变量

变量的声明

格式
//数据类型 变量名 = 初值
int a = 234

其中:

int 是数据类型,

a 是变量名,

234 为 初值

作用域

也称变量的作用范围,即一个变量在多大的范围内可以使用。

类变量

独立于方法之外的变量,用 static 修饰。

public class LBL {
    static int p=100;  //类变量
    public static void main(String[] args) {
    System.out.println(p);
    }
}
实例变量

独立于方法之外的变量,不过没有 static 修饰。

public class LBL {  
     String p="hello world";  // 实例变量    
     public static void main(String[] args) {
    System.out.println(p);
    }
}

局部变量

类的方法中的变量.

public class LBL {      
    public static void main(String[] args) {
    int p = 123 ;
    System.out.println(p);
    }
}

相对关系
public class Text{
    static int p1=0;    // 类变量

    String p2="hello world";  // 实例变量
 
   public void method(){

        int p3 =0;  // 局部变量

    }
}
作者: Xenolies
文章标题 :JAVA学习笔记(1)
文章链接 : https://xenolies.xyz/2022/03/04/775/
文章URL : https://xenolies.xyz/2022/03/04/775/
本文采用 CC BY-NC-SA 4.0 协议

评论

  1. 博主
    Windows Edge 99.0.1150.36
    7月前
    2022-3-12 16:05:29

    当多个数据类型一同运算时,会自动转为高精度类型,(int —> float)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇