Java· 第五周

本文详细介绍了Java编程的基础知识,包括语言特点、开发环境搭建、类和对象的概念、基本语法、数据类型、流程控制、方法、数组以及面向对象的封装、继承和多态性。通过学习,读者将能够掌握Java开发的基础技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//第五周实验做第三章1-3题


第一章

学习目标:了解Java语言的特点;掌握Java开发环境的搭建;掌握环境变量的配置;理解Java的运行机制;掌握eclipse开发工具的基本使用

Java语言主要面向Internet编程

最主要的特点:

简单性:

        丢弃了C++中的运算符重载、多重继承等模糊概念;

        不用指针,使用引用;

        提供自动的垃圾回收机制

面向对象性:

        提供了类、接口和继承等原语。为了简单起见,只支持类之间的单继承。但支持接口之间的多继承,并支持类与接口之间的实现机制(关键词为implements)。Java语言全面支持动态绑定。

安全性:

        不支持指针,一切对内存的访问都必须通过对象的实例变量来实现

跨平台性:

        程序本身跨平台,但虚拟机不能跨平台

支持多线程:

        程序中有多个任务可以并发执行,提高程序的执行效率

JDK为SUN公司提供的Java开发环境,包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等

JDK安装目录的子目录介绍:

        bin目录:存放一些可执行程序

                其中最重要的就是javac.exe和java.exe

                        javac.exe是Java编译器工具,可以将编写好的Java文件编译成Java字节码文件(可执行的Java程序)。如源文件"HelloWorld.java"编译后生成"HelloWorld.class"

                        java.exe是Java运行工具,会启动一个Java虚拟机(JVM)进程。Java虚拟机相当于一个虚拟的操作系统,专门负责运行由Java编译器生成的字节码文件(.class文件)

        db目录:一个小型的数据库

        jre目录:Java程序运行时环境的根目录,包含Java虚拟机,运行时的类包、Java应用启动器及一个bin目录,单不包含开发环境中的开发工具

        include目录:由于JDK是通过C和C++实现的。这里存放C语言的一些头文件

        lib目录:Java类库或库文件,是开发工具使用的归档包文件

·        src.zip文件:src文件的压缩包,放置的是JDK核心类的源代码,通过该文件可以查看Java基础类的源代码

class HelloWorld{
    public static void main(String[] args){
        System.out.println("hello world!");
    }
}

其中,class是一个关键字,用于定义一个类(约同一个程序)

HelloWorld是类的名称,与关键字间用任意的空白字符进行分隔即可

public static void main(String[] args){} 定义了一个 main方法,为程序的执行入口

(第一章到此结束,关于直接在win上运行Java程序的部分未整理)


第二章 Java编程基础

学习目标:掌握Java基本语法、常量、变量、流程控制语句、方法以及数组;熟悉Java运算符的使用;了解Java代码的基本格式

1.类需要用class关键字定义,class之前可以有一些修饰符:

修饰符 class 类名{
    程序代码
}

2.编写代码注意事项

3.文档注释以"/**"开头,以"*/"结尾

4.标识符定义规则

 5.关键字:

6.数据类型种类

1)整数类型变量

2)浮点数类型变量

         其中,float需要在赋值的后面加上f,double的可以不加

3)字符类型变量

        用char表示,每个占2字节,0~65535范围内的整数会被对应转换

4)布尔类型,boolean

        只有true和false两个值

7.数据类型转换

1)自动转换

 2)强制类型转换

格式:目标类型     变量  =   (目标类型)值

变量在表达式中进行运算时,也有可能发生自动类型转换,这就是表达式数据类型的自动提升,如一个byte型的变量在运算期间类型会自动提升为int型,故而下式需要用到进行强制类型转换

	public static void main(String[] args) {
		byte b1 = 3; // 定义一个byte类型的变量
		byte b2 = 4;
		byte b3 = (byte) (b1 + b2); // 两个byte类型变量相加,赋值给一个byte类型变量
		System.out.println("b3=" + b3);
	}

8.变量的作用域:变量所被定义的大括号内的部分

9.算数运算符

1) 

2)

3) 

4)

5)运算符优先级

10.选择结构语句

1)if语句

if...else

if...else if...else

2)switch case语句:

switch(表达式){
        case 目标值1:
        执行语句 1
        break;
        case 目标值2:
        执行语句 2
        break;
        ......
        case 目标值n:
        执行语句 n
        break;
        default:
        执行语句n+1
        break;
}

                                     

 3)while语句(重复进行条件判断,只要成立,即执行语句)

do ... while

 4)for语句;

5)跳转语句:break,continue

break语句:

        用在switch条件语句和循环语句中,它的作用是终止某个case并跳出switch结构

        当break语句出现在嵌套循环的内层时,它只能跳出内层循环,如果想跳出外层循环,则需要对外层循环添加标记

public static void main(String[] args) {
		int i, j; // 定义两个循环变量
		itcast: for (i = 1; i <= 9; i++) { // 外层循环
			for (j = 1; j <= i; j++) { // 内层循环
				if (i > 4) { // 判断i的值是否大于4
					break itcast; // 跳出外层循环
				}
				System.out.print("*"); // 打印*
			}
			System.out.print("\n"); // 换行
		}
	}

continue语句:

        用在循环语句中,它的作用是终止本次循环,执行下一次循环 

public static void main(String[] args) {
		int sum = 0; // 定义变量sum,用于记住和
		for (int i = 1; i <= 100; i++) {
			if (i % 2 == 0) { // i是一个偶数,不累加
				continue; // 结束本次循环
			}
			sum += i; // 实现sum和i的累加
		}
		System.out.println("sum = " + sum);
	}

*11.方法

1)在Java中,声明一个方法的具体语法格式如下:

修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名2,..]) {
			执行语句
			...
			return 返回值;
		}

2)

*12.数组的定义

int[] x=new int[2];

即:
int[] x;
x = new int[2];

//初始值都是0

//二维数组定义
int[][] arr=new int[3][4];//每个元素的长度确定时
int[][] arr=new int[3][];//数组中每个元素的长度不确定时

在程序中可以通过“数组名.length”的方式来获得数组的长度,即元素的个数。

(第二章到此结束)


第三章 面向对象(上)

学习目标:掌握列的封装特性、构造方法定义、重载以及this和static关键字的使用;了解面向对象的三大特征;熟悉类与对象的创建和使用

1.面向对象的特点:
1)封装性

2)继承性:无需编写原有类的情况下对原有类的功能进行扩展

3)多态性:允许出现重名现象

2.类的定义

 1)定义完类后,需要继续根据类创建实例对象

类名 对象名称 = new 类名()

eg:
Person p = new Person();
//Person p:声明了一个Person类型的变量p
//new Person():用于创建一个Person类的实例对象
//=:用于键Person对象在内存中的地址赋值给变量p

2)案例 

//例如下列案例
package example3;

class Person{
	int age;
	void speak() {
		System.out.println("我"+age+"岁了");
	}
}

public class e1_1 {
	public static void main(String[] args) {
		Person a = new Person();
		Person b = new Person();
		a.age=18;
		a.speak();
		b.speak();
	}
}

3.类的封装 

 案例:

package example3;
class Student {
	private String name; // 将name属性私有化
	private int age; // 将age属性私有化

	// 下面是公有的 getXxx 和 setXxx 方法
	public String getName() {
		return name;
	}

	public void setName(String stuName) {
		name = stuName;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int stuAge) {
		// 下面是对传入的参数进行检查
		if (stuAge <= 0) {
			System.out.println("对不起,您输入的年龄不合法...");
		} else {
			age = stuAge; // 对属性赋值
		}
	}

	public void introduce() {
		System.out.println("大家好,我叫" + name + ",我今年" + age + "岁!");
	}
}
public class e4 {
	public static void main(String[] args) {
		Student stu = new Student();
		stu.setAge(30);
		stu.setName("韩强");
		stu.introduce();
	}
}

4.构造方法

1)方法名与类名相同;方法名前没有返回值类型的声明;在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束

class Person {
	// 下面是类的构造方法
	public Person() {
		System.out.println("无参的构造方法被调用了...");
	}
}

public class Example05 {
	public static void main(String[] args) {
		Person p = new Person(); // 实例化 Person对象
	}
}

2)构造方法的重载

class Person {
	int age;

	// 定义有参的构造方法
	public Person(int a) {
		age = a; // 为age属性赋值
	}

	public void speak() {
		System.out.println("今年我已经 " + age + "岁了!");
	}
}

public class Example06 {
	public static void main(String[] args) {
		Person p = new Person(20); // 实例化 Person 对象
		p.speak();
	}
}

5.this关键字

 6.垃圾回收机制

 7.静态变量(static修饰的成员变量)

1)被所有实例所共享

2)可以使用“类名.变量名”的形式来访问:

package cn.itcast.chapter03.example13;
/**
 * 静态方法的使用
 */
class Person {
	public static void sayHello() { // 定义静态方法
		System.out.println("hello");
	}
}

class Example13 {
	public static void main(String[] args) {
		//1.类名.方法的方式调用静态方法
		Person.sayHello();
		//2.实例化对象的方式来调用静态方法
		Person p = new Person();
		p.sayHello(); 
	}
}

3)静态方法(不和对象绑在一起)

在类汇总定义的方法前加上static关键字即可;可以用“类名.方法名”的方式来访问,也可以通过类的实例对象来访问

4)成员内部类

 

 (第三章到此结束,关于静态代码块的部分没整理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值