Java入门 面向对象(封装:导包、private修饰、static修饰、set\get方法)(第十七天)(二)

修饰符:

类的访问修饰符:

    public修饰符:公有访问级别(在同一个类中,被不同修饰符修饰的属性或者方法,对象都可以直接使用)

    protected修饰符:被protected修饰的属性或方法不能被不同包里的类直接访问

    默认修饰符:包级私有访问级别(被默认修饰符修饰的类只能被同一个包里的其它类访问)

    private修饰符:被private修饰的属性或方法,只能在其所在的类里直接使用

注意:

一个Java文件里只能有一个public修饰的类,可以有多个默认修饰符修饰的类

private修饰符:(使用于封装)

   只能在类里面使用,被private修饰符修饰后,要想使用该类里的方法需要通过提供的方法(接口)使用 

static修饰符:

static变量的作用:

        (1)能被类的所有实例共享,可作为实
           例之间进行交流的共享数据
        (2)如果类的所有实例都包含-一个相同
           的常量属性,可把这个属性定义为静
           态常:量类型,从而节省内存空间

static方法:

静态方法:可直接通过类名访问
     ■静态方法中不能使用this和super
     ■不能直接访问所属类的实例变量和实例方法
     ■可直接访问类的静态变量和静态方法
  实例方法:通过实例访问

     ■可直接访问所属类的静态变量、静态方法、实例变量和 实例方法

  静态方法必须被实现   main()就是最常用的静态方法  ( 必须被实现:指的是必须有方法体)

 在静态方法中不能使用this和super关键字,因为static是属于类的,不是属于某一个对象

static修饰符:

static可以用来修饰
        成员变量:
            静态变量,可以直接通过类名访问
        成员方法:
            静态方法,可以直接通过类名访问
        代码块:
            静态代码块,当Java虚拟机加载类时,就会执行该代码块 


static代码块:

    JVM加载类时,加载静态代码块
        1)如果有多个静态块,按顺序加载
        2)每个静态代码块只会被执行一次


类的成员变量包括:

    ■类变量(静态变量)
           ●被static修饰的变量
           ●在内存中只有一个拷贝
           ●类内部,可在任何方法内直接访问静态变量
           ●其他类中,可以直接通过类名访问
    ■实例变量
           ●没有被static修饰的变量
           ●每创建一个实例,就会为实例变量分配一次内存 ,实例变量可以在内存中有多个拷贝,互不影响

总结:

   综上所述:静态的只能访问静态的(变量、方法) ; 
   非静态的既可以访问静态的也可以访问非静态的(变量、方法)

代码例题:

类:

package cn.bdqn.demo11;

public class FinalStaticDemo01 {
	
	//定义常量
	final int NUM = 100;
	//常量值不能修改
//	NUM=200;
	
	//定义静态常量
	final static int NUMBER = 100;
	static final int TEST = 200;
	
	public static void main(String[] args) {
		System.out.println(FinalStaticDemo01.NUMBER);
		System.out.println(FinalStaticDemo01.TEST);
		
		System.out.println(Math.PI);
		
	}

}

 对象:

package cn.bdqn.demo10;

public class Demo01 {
	
	//定义变量
	//没有使用static使用的变量称之为实例变量
	int num1 =100;
	
	//使用static修饰的变量称之为类变量/静态变量,静态变量可以直接使用类名来调用
	static int num2 =1000;
	
	public static void main(String[] args) {
		//实例变量只属于其所在的对象,各个对象之间不影响
		Demo01 d1= new Demo01();
		System.out.println(d1.num1);//100
		d1.num1 = 200;
		System.out.println(d1.num1);//200
		
		System.out.println(d1.num2);//1000
		d1.num2 = 2000;
		System.out.println(d1.num2);//2000
		
		Demo01 d2 = new Demo01();
		System.out.println(d2.num1);//100
		d2.num1 = 500;
		System.out.println(d2.num1);//500
		//使用static修饰的变量被对多个对象公用,一个对象对变量进行操作会影响另一个对象使用该数据
		System.out.println(d2.num2);//2000
		
	}
	

}

set、get方法:

在封装中要使用set、get方法留可供使用的方法(类似手机留接口,可以插数据线、耳机等)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值