(已整理到博文)Java 基础语法(2)
等学得有点东西的时候再整理发个博文
一、流程控制结构
1. 分支结构
- if 语句
if (条件) { 语句; } else if( 条件 ) { 语句; } else { 语句; }
- switch 语句
switch (变量) { case "": 语句; break; case "" : case "" : case "" : …… 语句; break; default: 语句; }
2. 循环结构
- for 循环
for( 初始化语句 ; 循环条件 ; 迭代语句 ) { 语句; }
for( 元素类型 循环变量名:数组名 ) { 语句; }
- while 循环:先 while 后 do
初始化语句;
while ( 循环条件 ) { 循环体语句; 迭代语句; }
- do-while 循环:先 do 后 while
初始化语句;
do { 循环体语句; 迭代语句 } while ( 循环条件 );
3. 跳转关键字
- break :跳出并结束当前所在循环的执行
- continue :跳出当前循环的当次执行
二、数组
所谓的数组其实是存在一连串连续空间的数据,数组名指向该一连串空间的首空间的地址。
- 创建数组
- 数据类型[] 数组名 = new 数据类型[] {元素1,元素2,…… };
- 数据类型 数组名[] = {元素1,元素2,…… };
- 数组的长度
- 数组名.length
3.动态初始化数组
- 数据类型[] 数组名 = new 数据类型[长度];
三、方法
方法是一种语法结构,可以把一段代码封装成一个功能,以便调用。
1.格式
修饰符 返回值类型 方法名 { 形参列表 } {
方法体代码;
return 返回值;
}
- 调用
- 方法名称( 实参列表 );
- 变量 = 方法名称( 实参列表 );
- 参数的传递
- 基本数据类型:传递实参,但不会改变调用前所在函数的数据。
- 引用类型:使用地址传参,会改变地址所在的数据。
- 方法重载
一个类中,出现多个方法名称相同但形参列表不同。
四、对象
通俗的讲,对象是一个放了数据和操作方法的容器。
首先,需要设计对象,如:
public class Student {
//对象的属性,一般来说有默认值(null或0)
String name;
int age;
...
//对象的方法,处理所需要的信息并返回
public void putImformation() {
...
}
//可以同时有多个方法
public void getScore() {
...
}
}
然后,在需要调用时,可像这样操作:
//创建对象实例,并输入实例信息
Student st1 = new Student();
st1.name = "...";
st1.age = ...;
...
//调用对象里存在的方法
st1.putImformation();
...
同时,也可以通过直接赋值,从而引用对象实例,并可从中作出修改(即将对象的地址直接传给了另一个实例)
//创建实例1
Student st1 = new Student();
st1.name = "...";
st1.age = ...;
...
//创建实例2,直接赋值
Student st2 = st1;
//从中可做出修改,此时会影响 st1
st2.name = "...";
...
注意事项:
- 当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”,Java 虚拟机的垃圾回收机制会自动清除掉垃圾对象
五、this 关键字
如单词所表达,this 关键字用来指当前的对象。
什么是 this 关键字?
- this 就是一个变量,可以用在方法中,来拿到当前对象。
- 哪个对象调用方法,this 就指向哪个对象。
this 关键字有什么用?
- 用来解决变量名称冲突问题,例如:
public class Stduent {
double score; //这是对象里的变量
public void compare(double score) { //这是对象里的方法所接收数据用的变量名
//错误使用示例
if(score > score) {语句;} //此时两个score都指的是最近的变量名。即方法所使用的变量名
//正确使用示例
if(this.score > score) {语句;} //此时前者访问对象里的变量名,后者访问方法所使用的变量名
}
}
六、构造器与封装
什么?原来对象里可以放多个和对象重名的方法?
什么是构造器?
- 与类名相同的方法,例如:
public class Student {
//构造器
public Student() {
...
}
}
特点是什么?
- 不能写返回值。
- 与类名同名。
- 打开对象时,会调用构造器,例如:
//对象
public class Student {
public Student() {
System.out.println("无参数构造器被执行了。");
}
public Student(int N) {
System.out.println("有参数构造器被执行了,参数为" + N);
}
public Student(String name, int N) {
System.out.println("多参数构造器被执行了。");
this.name = name;
this.age = N;
}
}
//调用对象的程序
public class Test {
public static void main(String[] args) {
//调用无参数构造器
Student st1 = new Student();
//调用有参数对象构造器
Student st2 = new Student(10);
}
//调用多参数对象构造器
Student st3 = new Student("李华", 10);
System.out.println(st3.name + st3.age);
}
则输出结果为:
注意事项:
- 如果不写构造器,Java会为类自动生成一个无参构造器。
- 若已定义有参数构造器,则Java不自动生成无参构造器,此时应自己手写一个无参数构造器。
什么是封装?
- 将要处理的数据及方法设计到一个对象中。
封装的特点
- 合理隐藏,合理暴露:根据实际需要,将变量或方法利用 public 或 private 来对外公开或隐藏,防止外部程序过度访问对象内容。
七、实体类
这又是啥呀(疑惑)
什么是实体类?
- 是一种特殊形式的类,仅用于保存数据。
- 必须要有一个公共的无参构造器。
- 成员变量都要 private ,并且要对外提供相应的getXxx,setXxx方法。(一般没有其它方法)
分类:
Java / 基本知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架