基本数据类型及一些注意事项
逻辑类型:boolean
整数类型:byte
, short
, int
, long
字符类型:char
浮点类型:float
, double
需要加后缀的有long
和float
注意事项
- 对于局部变量,不存在默认值
- 只有实例方法才能调用实例变量
PATH和CLASSPATH的配置
PATH的配置: 找到JDK的安装路径(例如:D:\jdk
),设置环境变量,在PATH中添加D:\jdk\bin
CLASSPATH的配置: 设置CLASSPATH
环境变量,.; D:\jdk\lib
Java特点中面向对象是什么
Java是面向对象编程语言,面向对象编程(OOP)是一种编程范式,使用“对象”作为基本单元。对象包含数据(属性)和行为(方法)。
面向对象编程的三个主要特点:
- 封装:将对象的属性和方法封装在一起,隐藏对象的内部实现细节,只暴露必要的接口。这样可以保护数据,防止外部干扰。
- 继承:一种机制,可以创建一个新类,这个新类基于已有的类并继承其属性和方法。新类可以重用父类的代码,还可以添加新的功能。
- 多态:允许对象以多种形式出现。具体来说,一个父类的引用可以指向子类的实例,并且可以调用子类的方法,实现运行时多态。
各个修饰符修饰的类在各个场景下的访问权限
修饰符 | 同一个类 | 同一个包 | 子类(同包) | 子类(不同包) | 其他包 |
---|---|---|---|---|---|
public | √ | √ | √ | √ | √ |
protected | √ | √ | √ | √ | × |
默认 (无修饰符) | √ | √ | √ | × | × |
private | √ | × | × | × | × |
说明:
public
:公共访问,任何地方都可以访问。protected
:受保护访问,同包可以访问,不同包的子类可以访问。- 默认(无修饰符):包级私有,同包可以访问,不同包不能访问。
private
:私有访问,只有同一个类中可以访问。
类:
- 顶层类(Outer Class)只能用
public
或默认修饰,不能用protected
或private
。 - 内部类(Inner Class)可以用
public
、protected
、默认或private
修饰。
成员变量:
- 成员变量可以用
public
、protected
、默认或private
修饰,遵循上表的访问权限。
GUI中listener的用处
在Java的GUI编程中,listener是用于响应用户交互事件的接口。例如,点击按钮、移动鼠标等。listener可以让程序对用户操作做出响应。
常见的listener接口:
ActionListener
: 用于处理动作事件(如按钮点击)。MouseListener
: 用于处理鼠标事件。KeyListener
: 用于处理键盘事件。
实际代码示例
- 写一个class,写构造方法,并继承:
class Animal {
String name;
// 构造方法
public Animal(String name) {
this.name = name;
}
public void makeSound() {
System.out.println("Some sound...");
}
}
class Dog extends Animal {
// 子类的构造方法
public Dog(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println("Bark");
}
public static void main(String[] args) {
Dog dog = new Dog("Buddy");
dog.makeSound(); // 输出 "Bark"
}
}
- 写一个接口,并写一个类实现该接口:
// 定义接口
public interface Vehicle {
void start();
void stop();
int getSpeed();
}
// 实现接口的类
public class Car implements Vehicle {
private int speed;
@Override
public void start() {
System.out.println("Car is starting");
speed = 10;
}
@Override
public void stop() {
System.out.println("Car is stopping");
speed = 0;
}
@Override
public int getSpeed() {
return speed;
}
public static void main(String[] args) {
Car car = new Car();
car.start();
System.out.println("Speed: " + car.getSpeed());
car.stop();
System.out.println("Speed: " + car.getSpeed());
}
}
- 写一个抽象类以及实现:
abstract class Shape {
// 抽象方法
abstract void draw();
// 非抽象方法
void description() {
System.out.println("This is a shape");
}
}
class Circle extends Shape {
@Override
void draw() {
System.out.println("Drawing a circle");
}
public static void main(String[] args) {
Circle circle = new Circle();
circle.draw(); // 输出 "Drawing a circle"
circle.description(); // 输出 "This is a shape"
}
}
- super关键字:
在Java中,super
关键字是一个特殊的引用,它指向当前对象的父类。
class Parent {
void show() {
System.out.println("Parent's show()");
}
int value = 10;
}
class Child extends Parent {
void show() {
super.show(); // 调用父类的show()方法
System.out.println("Child's show()");
}
int value = 20;
void printValues() {
System.out.println(super.value); // 访问父类的value字段
System.out.println(value); // 访问子类的value字段
}
Child() {
super(); // 调用父类的构造方法
}
}
public class Test {
public static void main(String[] args) {
Child c = new Child();
c.show();
c.printValues();
}
}
在这个例子中,Child
类继承自 Parent
类。在 Child
类的 show()
方法中,我们使用 super.show()
来调用 Parent
类的 show()
方法。在 printValues()
方法中,我们使用 super.value
来访问父类的字段,而直接使用 value
来访问子类的字段。在 Child
类的构造方法中,我们使用 super()
来调用父类的构造方法。
- 可变参数:
可变参数可以与普通参数一起使用,但可变参数必须放在参数列表的最后
public void printAll(Object first, int... numbers) {
System.out.println(first);
for (int num : numbers) {
System.out.println(num);
}
}
补充:2022级课堂作业
本部分材料来自lyz
- JDK编译器:
javac.exe
- 正确main方法:
public static void main(String args[])
- jdk的安装目录为
D:\jdk
,则path的值设置为D:\jdk\bin
,classpath的值设置为.; D:\jdk\lib
- 源文件扩展名为
.java
,字节码的扩展名是.class
- Java源文件是由若干个类组成的,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类
- 类体内容中声明成员变量是为了体现对象的属性还是行为?—-属性
- 类体内容中定义的非构造方法是为了体现对象的属性还是行为?—-行为
- 构造方法没有返回值
- 构造方法可以重载
- 类中的实例方法可以操作类变量(
static
变量) - 类方法(
static
方法)不需要操作实例变量 - 类中的实例方法可以用类名不直接调用
- 局部变量没有默认值
- 接口中不可以声明变量
- 接口中可以定义非抽象方法
- 接口中的常量可以不指定初值
- 可以在接口中只声明常量,不声明抽象方法
- 允许接口中只有一个抽象方法
- 线程在新建状态和死亡状态时,调用
isAlive()
方法返回值是false
FileInputStream
按字节读取文件- 监视
KeyEvent
事件的监视器必须实现KeyListener
接口 "Hello".equals(“hello”)
的值是false
- 监视
WindowEvent
事件的监视器必须实现WindowsListener
接口
对话设计自然,符合角色身份与情境。
选材新颖独特,通过细节描写赋予主题鲜活生命力。
作者的观点新颖且实用,让人在阅读中获得了新的思考和灵感。
这篇文章不错!
蓬莱仙踪
高飞不笨
阿碧的恩典
降临
凤楼传之灵狐传说
诡摇铃
女人街再见了
九个半星期
乒乓
c++教程
恶魔恐怖现身
莱拉
第二幕
407航班
天生冤家
照明商店
呼吁
钢之炼金术师
民间奇异志
最佳损友粤配
活埋求生
动物园天启夜
九月五日
乘风破浪
赌神2
死亡电压
大冒险家粤配
聚光灯下的圣诞节
扎职
闰年
下一站说爱你
照明商店
柯村风云
隔墙有情人
她说
无限旅程
长江7号超萌特攻队
浪潮
长津湖
劫车王
洪福齐天粤配
拉姆齐范德堡案件
哈泰利
鬼娃回魂