面向对象NO.2
作者:互联网
面向对象进阶
1.成员变量
成员变量分为实例变量和类变量
语法:
[<修饰符>] [static] [final] <变量类型> <变量名>
示例:
public class xswl {
String name;
int age;
public static void main(String[] args) {
xswl xl = new xswl();
xl.name="德鲁伊";
xl.age=45;
xswl xl2 = new xswl();
System.out.println("英雄xswl的名字:"+xl+"\t"+"年龄:"+xl.age);
System.out.println("英雄xswl2的名字:"+xl2+"\t"+"年龄:"+xl2.age);
}
}
2.this关键字
this 关键字最大的作用就是让类中的一个方法访问该类中的另一个方法或实例成员变量。
示例:
public void jump() {
System.out.println("---英雄遇到了障碍需要跳过去---");
}
public void run() {
System.out.println("---执行run()方法英雄正在奔跑");
bnm ts = new bnm();
System.out.println("her对象已经被创建内存地址为:"+ts.hashCode()+",它将实行jump方法");
ts.jump();
}
public static void main(System[] arge) {
bnm ts = new bnm();
System.out.println("her对象已经被创建内存地址为:"+ts.hashCode()+",它将实行run()方法");
ts.run();
}
3.隐藏和封装
封装是面向对象的三大特性之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法实现对内部信息的操作和访问。
封装是面向对象编程语言对客观世界的模拟,客观世界中的属性均被隐藏在对象内部,外界无法直接操作和修改,如人的年龄属性只能随岁月的流逝而增加,通常不能随意修改人的年龄。对一个类或对象实现良好的封装,可以实现以下目的:
1、隐藏类的实现细节。
2、让使用者只能通过事先预定的方法访问数据,从而可以在该方法中加入控制逻辑,限制对属性的不合理访问。
3、可进行数据检查,从而有利保证对象信息的完整性。
4、便于修改,提高代码的可维护性。
实现良好的封装,需要从以下两个方面考虑:
1、隐藏对象的属性和实现细节,不允许外部直接访问。
2、暴露出方法,让方法控制对这些属性进行安全的访问和操作。
示例:
private String name;
private int age;
public void setName(String Name) {
if(name.length()>6||name.length()<2) {
System.out.println("您输入的名字不符合要求");
return;
}else {
this.name = name;
}
}
public String getName() {
return name;
}
public void setAge(int age) {
if(age>100 || age<0) {
System.out.println("您输入的年龄不合法");
return;
}else {
this.age = age;
}
}
public int getAge() {
return age;
}
public static void main(String[] arge) {
wlkl lk = new wlkl();
lk.age=1000;
lk.setAge(1000);
System.out.println("未成功设置age属性值时age属性值:"+lk.getAge());
lk.setAge(30);
System.out.println("成功设置age属性值后age属性值:"+lk.getAge());
lk.setName("恶魔巫师");
System.out.println("成功设置name属性值后name属性值:"+lk.getName());
}
4.static关键字
类的成员变量包含静态变量(也称为类变量)和1实例变量。
静态成员变量是被static关键字修饰的成员变量,静态成员变量属于其所在类,被类中的所有实例共享,静态成员变量可通过类直接访问,也通过类的实例访问。
示例:
public class Bank {
private static int count = 50000;
public static void main(String[] args) {
for(int i=0; i<10; i++) {
Bank bank = new Bank();
bank.count = bank.count - 1000;
System.out.println("当前银行总钱数="+Bank.count);
}
}
标签:变量,void,System,ts,面向对象,static,NO.2,public 来源: https://blog.csdn.net/tlh888666/article/details/117906144