1. Java基础语法
1.1 变量和数据类型
在Java编程中,变量是存储数据的地方,而数据类型则定义了变量的存储方式和取值范围。以下是Java中常用的数据类型:
- 基本数据类型:
- 整型:
int、short、byte、long - 浮点型:
float、double - 字符型:
char - 布尔型:
boolean
- 整型:
- 引用数据类型:
- 类:
String、Date等 - 接口:
Comparable、Runnable等
- 类:
1.2 运算符
Java中的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。以下是一些常见的运算符:
- 算术运算符:
+、-、*、/、% - 关系运算符:
==、!=、>、>=、<、<= - 逻辑运算符:
&&、||、! - 位运算符:
&、|、^、<<、>>、>>> - 赋值运算符:
=、+=、-=、*=、/=、%=
1.3 控制流程
Java中的控制流程包括条件语句和循环语句。
- 条件语句:
if语句if-else语句switch语句
- 循环语句:
for循环while循环do-while循环
2. 面向对象编程基础
2.1 类和对象
在Java中,类是对象的模板,对象是类的实例。以下是一个简单的类定义:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.2 封装
封装是面向对象编程的核心思想之一,它将数据和行为封装在一起,保护数据不被外部访问。在上面的Person类中,name和age属性被声明为private,外部无法直接访问它们,只能通过getName、setName、getAge和setAge等方法来访问。
2.3 继承
继承是面向对象编程的另一个核心思想,它允许一个类继承另一个类的属性和方法。以下是一个继承的例子:
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
在这个例子中,Student类继承自Person类,并添加了一个新的属性school。
2.4 多态
多态是指同一个方法在不同的对象上有不同的行为。以下是一个多态的例子:
public class Animal {
public void makeSound() {
System.out.println("Animal makes a sound");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat meows");
}
}
在这个例子中,Animal类有一个makeSound方法,Dog和Cat类都继承自Animal类并重写了makeSound方法。
3. 练习解答
以下是一些关于Java基础语法的练习题及其解答:
3.1 练习题
- 定义一个名为
Person的类,包含name和age两个属性,以及相应的构造方法和访问器方法。 - 定义一个名为
Student的类,继承自Person类,并添加一个名为school的属性。 - 定义一个名为
Animal的类,包含一个makeSound方法。 - 定义两个名为
Dog和Cat的类,继承自Animal类,并重写makeSound方法。
3.2 解答
Person类定义如下:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Student类定义如下:
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
Animal类定义如下:
public class Animal {
public void makeSound() {
System.out.println("Animal makes a sound");
}
}
Dog和Cat类定义如下:
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat meows");
}
}
