面向对象进阶
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文章讲解成员变量,this关键字,隐藏和封装,static关键字
提示:以下是本篇文章正文内容,下面案例可供参考
一、成员变量
概念
成员变量是在类范围内定义的变量,成员变量分为类属性和实例属性两种。
与局部变量的区别
1.类中位置不同:成员在类中,局部在方法中(方法体中)
2.内存中位置不同:成员在堆,局部在栈
3.生命周期不同:成员随对象的创建而存在,消失而消失
4.成员变量有默认值,局部变量无默认值,用前赋值,不然报销
语法
[<修饰符>] [static] [ final] <变量类型><变量名>
示例
创建一个Person类,该类中有一个类成员变量country,一个实例变量name和另一个实例变量age.
package lijiao;
public class Person {
String name;
int age;
String country;
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", country=" + country + "]";
}
}
package lijiao;
public class Test {
public static void main(String[] args) {
Person p1 = new Person();
p1.name="张三";
p1.age=18;
p1.country="";
Person p2 = new Person();
p1.name="李四";
p1.age=18;
p1.country="";
System.out.println(p1);
System.out.println(p2);
}
}
效果图:
二、this关键词
作用
就是让类中的一个方法访问该类中的另一个方法或成员变量,解决了成员变量和局部变量同名的问题。
示例
代码如下(示例):
public class Hero {
public void jump(){
System.out.println("--英雄遇到障碍要跳过去--");
}
public void run(){
System.out.println("--英雄正在奔跑--");
Hero hero = new Hero();
System.out.println("hero内存地址为:"+hero.hashCode()+"它要跳起来了");
hero.jump();
}
}
public class Test {
public static void main(String[] args) {
//创建对象1
Person p1 = new Person();
p1.country = "长沙";
p1.name = "张三";
p1.age = 18;
//创建对象2
Person p2 = new Person();
//输出
System.out.println(p1);
System.out.println(p2);
}
}
效果图:
三,隐藏和封装
概念
封装:是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息.
目的
1.隐藏类的实现细节
2.限制对属性的不合理访问
3.保证对象的完整性
4.便于修改,提高代码的可维护性
修饰符
访问修饰符 | 同一个类中 | 同一个包中 | 子类中 | 所有类中 |
---|---|---|---|---|
private | √ | —— | —— | —— |
default | √ | √ | —— | —— |
protected | √ | √ | √ | —— |
public | √ | √ | √ | √ |
四.static修饰符
概念
1.java类的运行包括类加载和实例化两个阶段
2.静态成员包括静态代码块,静态属性和静态方法
3.
总结
以上就是今天要讲的内容,感谢观看!