九、对象-封装

封装

权限修饰符: 权限修饰符就是控制变量可见范围的.

public:公共的.public修饰的成员变量或者方法任何人都可以访问.

private:私有的.private修饰的成员变量或者方法只能在本类中直接访问.

1.封装把尽可能多的东西隐藏起来,对所有属性藏起来,对外提供接口间接访问.
2.set/get方法访问private
3.逻辑块要写在方法里.
4.set用来指定条件无返回值.
5.get用来获取值有返回值.

封装的步骤:

1.使用private修饰需要被封装的属性.

2.提供一个公共的方法设置或者获取该私有的成员属性.

命名规范:
	set属性名();
	get属性名();

private setXXX(){}间接设置变量值; 对象.set变量名();

    class 对象{
        private String sex;
        public void setSex(String s){
        sex = s;
    	} 
        public void getSex(){
        return sex;
    	}
    }
    class 类名{
        public static void main(String[] args) {
            对象.setSex("男/女"); // 用户改变  
    
            System.out.println(对象.getSex()); // 输出
        }
    
    }
    

现实开发中一般实体类的所有成员属性(成员变量)都要封装起来.

实体类:实体类就是用于描述一类事物的就称作为实体类.

工具类(arrays数组的工具类):

封装的好处:

1.提高数据的安全性.
	防止错误修改;
2.操作简单.
	提高系统独立性;
	提高软件可重用性;
3.隐藏了实现.
	降低大型系统的风险.

static修饰符

实例变量
在这里插入图片描述

  1. package只能有一个
  2. import可以有多个
  3. 想用不同包的同名类文件,可以创建以包+类为数据类型的对象

访问修饰符

作用域 public protected 默认 private
当前类
同包
子包
其他

修饰类的:

public 默认

修饰成员类:

private 默认 protected public

static修饰符

实例变量:没有用static修饰,被创建对象的实例访问

  • 在类的外部只能通过对象的实例调用,不能通过类名调用.

  • 在类的内部方法可以随意访问实例和静态的变量和方法.

  • 没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响.

类变量:被static修饰的变量(类名.xxx)

  • 在内存中只有一个拷贝
  • 在类的外部只能通过类名调用,不能对象实例调用.
// 直接类名调用,不用创建对象
Voter.printResult();
  • 在类的内部,可以在任何方法内直接访问静态变量.也可以用对象实例来访问.
  • 如果类所有实例都包含一个相同的常量属性,可以把这个属性定义为静态常量类型,从而节省空间.
// 类变量
public static String email;
// 调用静态变量
System.out.println(类名.email);
  • 静态方法调用时是斜体
  • 可以用类名.的是静态方法.
  • 静态方法中不能使用this和super,也不能访问实例变量和实例方法
  • 可以直接访问类的静态变量和静态方法.
  • 静态方法是必须被实现的.
  • main是静态的和类相关的,jvm先加载类,类又和静态方法相关,所以再运行时先找到当前类直接找当前类中的静态main,不需要创建对象.
  • 静态变量不能声明在方法里.

static 代码块

public class StaticTest{
	static int num = 100;
    static{
        num+=100;
        System.out.println(num);
	}
     static{
        num+=100;
        System.out.println(num);
	}
}

静态代码块和类一起加载

静态代码块只会被执行一次

猜你喜欢

转载自blog.csdn.net/Super_Robot/article/details/88914425