封装概念特点 跨包调用static关键字

封装

将类的某些信息隐藏在类内部,不允许外部程序直接访问
通过该类提供的方法来实现对隐藏信息的操作和访问
隐藏对象的信息
留出访问的接口

特点:

1 只能通过规定的方法访问数据
2 隐藏类的实例细节,方便修改和实现

Java封装的意义 防止使用者错误的修改系统的属性
提高系统的独立性 提高软件的可重用性

封装实现步骤

第一步 修改属性的可见性 设为private 只能当前类内被访问
第二步 设置开发接口 创建getter/setter方法 设为public用于属性的读写
第三步 在getter/setter方法中加入属性控制语句 对属性值的合法性进行判断

案例

public class CatTest {
	public static void main(String[] args) {
		//实例化对象
		Cat one = new Cat();
		one.setName("凡凡");
		one.setMonth(1);
		System.out.println(one.getName());
		if(one.getMonth()!=0) {
			System.out.println("年龄:"+one.getMonth());
		} return;
		
	}
}

被调用的类代码

package com.imooc.animal;
/**
 * 宠物猫类
 * @author Administrator
 *
 */
public class Cat {
	//修改属性的可见性---private 限定只能在当前类内访问
	private String name; //昵称
	private int month;  //年龄

	//创建get/set方法
	//在get/set方法中添加对属性的限定
	public void setName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return "我是一只名叫:"+name;
	}
	public void setMonth(int month) {
		if(month<=0) 
		System.out.println("输入信息错误,宠物猫的年龄必须大于0");
		else
		this.month = month;
	}
	public int getMonth() {
		return month;
	}
}

跨包调用

加载导包 列如: import com.imooc.animal.*;//表示该包的所有类
import com.imooc.animal.Cat;//加载指定包的类 针对性
然后实例化 即可调用Cat cat = new Cat();

还有一种加载方式 比如在主方法中直接加载 (太麻烦了)
com.imooc.animal.Cat cat = new com.imooc.animal.Cat();

如果导入的包里出现相同类名 同类名冲突问题
这时候要使用完全限定名称. com.imooc.animal.Cat cat = new com.imooc.animal.Cat();

static关键字

static 表示静态信息 用static修饰的成员叫静态成员或类成员
无论这个类实例化多少 对于static修饰的成员都共用一个存储空间
1 类对象共享
2 类加载时产生,消费时释放,生命周期长
静态成员的访问方法: 1对象.成员 2类.成员
public static int price;//售价
当static加属性前面的时候 称叫静态属性\类属性
public staic void eat(){}
当static添加成员方法前面变成一个静态方法\类方法
调用的话 推荐用类名.静态成员
类class不可以加static 不可以静态类
方法中局部变量也是不可以添加static(这个修饰符只能加final)

普通成员方法可以直接访问类中静态成员

静态方法不能直接访问同一个类的非静态成员,只能调用同一个类中静态成员
如果非要调用非静态的成员 只能通过对象实例化后 对象.成员方法的方式访问

#静态方法不能使用this

static{}静态代码块最优先执行=>构造代码块{}=>构造方法
请注意 静态代码块 实例不管多少都只会被执行一次
而构造代码块每次实例化的时候都会执行一次
静态代码块跟构造代码块 赋值及调用其他方法原则跟前面静态方法一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值