1 / 32
文档名称:

day06面向对象1.doc

格式:doc   大小:140KB   页数:32页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

day06面向对象1.doc

上传人:q1188830 2022/3/5 文件大小:140 KB

下载得到文件列表

day06面向对象1.doc

相关文档

文档介绍

文档介绍:static关键字
1:如果没有static会怎样?
1:定义Person类
1:姓名、年龄、国籍,说话行为
2:多个构造,重载形式体现
2:中国人的国籍都是确定的
1:国籍可以进行显示初始化
class P成员变量,只能访问静态变量。
2:静态方法不可以定义this,super关键字.
3:
2:非静态函数:非静态函数中可以访问静态成员变量
class Person {
String name;
int age;
String gender;
//static 修饰成员变量
static String country = "CN";
Person() {
}
Person(String name, int age, String gender) {
= name;
= age;
= gender;
}
//非静态方法
void speak() {
//非静态方法可以访问静态成员
("国籍:" + country );

("国籍:" + country + " 姓名:" + name + " 性别:" + gender
+ " 年龄:" + age + " 哈哈!!!");

}
//静态方法
static void run(){
//静态方法只能访问静态成员变量。
("国籍:"+country);

//静态方法访问非静态成员变量,编译报错。
(" 姓名:" + name);

//静态方法中不可以出现this,编译报错
();
}
}
2:细节:
1:静态函数中不能使用非静态变量
2:非静态函数可以访问静态变量
3:为什么静态函数中不能访问非静态成员
1:static修饰的成员在共享区中。优先于对象存在
2:验证
1:使用静态代码块验证
1:静态代码块
static{
静态代码块执行语句;
}
1:静态代码块特点
随着类的加载而加载。只执行一次,优先于主函数。用于给类进行初始化。
public class PersonDemo {
public static void main(String[] args) {
// 访问静态成员
// 直接通过类名来调用
String country = ;
(country);
//
Person p1 = new Person("jack", 20, "男");
= "US";
();
}
}
class Person {
String name;
int age;
String gender;
// static 修饰成员变量
static String country = "CN";
static {
("这是静态代码块");
}
{
("这是构造代码块");
}
Person() {
("无参数构造");
}
Person(String name, int age, String gender) {
= name;
= age;
= gender;
(" 有参数构造");
}
// 非静态方法
void speak() {
// 非静态方法可以访问静态成员
("国籍:" + country);
("国籍:" + country + " 姓名:" + name + " 性别:" + gender
+ " 年龄:" + age + "