day7
1. 绘制窗体
JFrame:
import javax.swing.JFrame;
public class Test {
public static void main(String[] args){
// 创建对象
JFrame frame = new JFrame();
// 设置窗体的大小
frame.setSize(231,897);
// 设置窗体可见
frame.setVisiable(true);
}
}
2. 类和对象
万物皆对象。
3. 面向对象的思想介绍
从执行者的位置变成指挥者,
4. 对象的内存图
-
单个对象内存图
-
两个对象内存图
-
两个引用指向相同对象内存图
5. 成员变量和局部变量的区别
**成员变量:**方法外,有默认初始化值,属于堆内存,它随着对象的创建而存在,随着对象的消失而消失
**局部变量:**方法内,没有初始化值,属于栈内存,它随着方法的调用而存在,随着方法的弹栈而消失
即类中编写位置不同,初始化值不同,内存所属不同,生命周期不同,都在所属的大括号中有效
6. this关键字
this用于区分成员变量和局部变量
public class Student {
//成员变量name、age
String name;
int age;
public student(){
}
public Student2(String name, int age) {
//this关键字,局部变量赋值给成员变量
this.name = name;
this.age = age;
}
}
7. 构造方法
-
构造方法 (构造器)
- 构建、创造一个对象的时候,所调用的方法
-
构造方法的作用 :
格式:
- 方法名与类名相同,大小写也必须一致;
- 没有返回值类型;
- 没有具体的返回值(不能通过return语句带回结果)
-
构造方法的执行时机:
- 在创建对象的时候,被系统自动调用执行,每创建一次对象,就会执行一次构造方法
- 构造方法不允许手动调用.
public class Student {
String name;
int age;
public Student(String name, int age){
this.name = name;
this.age = age;
}
}
-
注意事项:
- 如果一个类中没有写出任何构造方法,系统将会提供【默认的】【无参数的】构造方法
- 如果手动编写了构造方法,系统将不会再提供那个默认的无参构造了
- 建议:今后编写类的时候【空参】【带参】构造方法都手动给出.
8. 封装
-
面向对象分为三大特征
- 封装
- 继承
- 多态
如:
1.将属性抽取到类中,用户信息: id name age tel address 1 隔壁老王 34 123 香港 2 隔壁老张 24 456 北京
class User {
String id;
String name;
int age;
String tel;
String address;
}
User u = new User("1","隔壁老王",34,"123","香港");
- 将代码功能抽取到方法中,这是对功能进行的封装
public static int getMax(int[] arr){
for(int i = 1; i < arr.length; i++){
if(arr[i] > max){
max = arr[i];
}
}
return max;
}
9. private关键字
**private:**权限修饰符,私有化,只能在本类中进行访问
**default:**本类中,同一个包下(默认的)
protected
**public :**可以在任意位置访问
10.标准 JavaBean 类的编写和使用
- 成员变量全部私有化
- 空参、带参构造方法
- 对私有的成员变量,setXxx和getXxx方法
11. static关键字(静态)
- 被static修饰的成员(变量,方法)多了一种调用方法
- 可以通过类名直接调用
public class Student {
static int num = 1;
}
System.out.println(Student.num);
在静态的方法中, 只能访问静态的成员 静态只能访问静态
12.窗体的绘制
package day7;
import javax.swing.*;
public class Demo1JFrame {
public static void main(String[] args) {
// 1. 召唤精灵
JFrame frame = new JFrame();
// 2. 设置窗体大小
frame.setSize(345,789);
// 3. 设置窗体居中
frame.setLocationRelativeTo(null);
// 4. 设置窗体置顶
frame.setAlwaysOnTop(true);
// 5. 设置窗体关闭模式
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 6. 设置窗体标题
frame.setTitle("王者荣耀单机版");
// 设置窗体可见
frame.setVisible(true);
}
}