Java面向对象的第二天----(第七天)

Java面向对象的第二天----(第七天)

关键字:static

​ 概念:static称为静态,可以用来修饰类的属性,方法,代码块和内部类;

​ 特点:

​ 1.随着类的加载而加载:

​ 2.优先于对象存在;

​ 3.修饰的成员被其所有对象共享;

​ 4.可不创建对象,直接被类调用; 例如:Math.PI

​ 5.静态方法只可以访问静态的变量,不能访问成员变量;但成员方法可以访问静态变量和成员变量;

​ 6.静态方法与变量会优先加载于成员方法与变量。

示例:

/*
	static:静态的
		可以修饰:
			类的属性(成员变量)
			方法
			代码块
			内部类
*/
public class StaticDemo{
	//成员变量
     String  mame;
    
     //静态成员变量
     static String country = "中国";

    //被static修饰的放法也是存在方法区
    public static void testStatic(){
    	//静态方法只能访问 静态的变量
        System.out.println("静态方法"+country);
    }
    
	//成员方法
    public void test(){
    	//成员方法可以方法可以访问 成员变量
        System.out.println(mame);
        // 成员方法可以方法 还可以方法静态变量
        System.out.println(country);
    }

    public static void main(String[] args) {
    	//静态方法可以直接通过类名调用
        StaticMethod.testStatic();
    }
}

代码块

​ 概念:代码块在类中声明,类似于一个没有名字的方法;

​ 分类:

实例块:每次在创建该类对象时会自动执行;

			{
				……
			}
静态块:在类的加载的时候就会执行;

		static{
					……
			}

优先级:静态块 > 实例块 > 方法

示例:

/*
	代码块:
		实例块
		静态块
*/
public class Demo {

	//实例块
    {
        System.out.println("实例代码块");
    }
	//静态块
    static{
        System.out.println("静态代码块");
    }
    //构造方法
    public Demo(){
        System.out.println("构造方法");
    }

}


//需要在另一个类中进行测试
class Test{

    public static void main(String[] args) {
    		// 先加载类 然后创建对象
            new Demo();
        }

}

测试结果为:

	静态代码块
	实例代码块
	构造方法

​ 概念:可以理解为文件夹

​ 包的命名规范:包名全小写,并且需要区分分包的级别

​ 常用的分包格式:

​ 第一级 指该项目的类型,如com,org,gov等,
​ 第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等
​ 第三级 指项目的名称,如:bcms,oa,erp,cms等
​ 第四级 指项目模块的名称,如:bean,action,exception等

​ …

​ 作用:

​ 1.避免重名类

​ 全类名 : 包名(类的地址) + 类名;

import导入外部包的类:不能导入两个类名相同的,因为会引起系统无法识别使用的是哪一个包的类;因此可以通过全类名将其引用,让系统明确你想使用的是哪一个包下的类。

​ 2.按照不同的功能管理类

​ 3.控制访问权限

示例:

import java.util.Date;
//import java.sql.Date;     在同一个文件中不能引用外来相同的类

/*
* import  可以引用外来包的类
* */
public class Demo1 {
    public static void main(String[] args) {
        //默认使用import引用的类
        Date date = new Date();

        //如果想要使用类名相同的情况是,需要给类进行全名类
        Date d = new java.sql.Date(1000);
    }
}

访问权限修饰符

Java语言有四个权限访问修饰符,权限从大到小依次为:

​ **public :**公共权限 修饰类、属性、方法。可以被任意类访问;

​ **protected:**受保护的权限 修饰属性、方法。

可以被同包类访问,如果不是同包类,必须是该类的子类才可以访问;

​ **default:**同包权限(默认的) 修饰类、属性、方法。只能被同包的类访问;

​ **private:**私有权限 修饰属性、方法。 只能在本类中访问。

publicprotecteddefaultprivate
同类TTTT
同包TTT
不同包子类TT
不同包的其他类T

示例:

public class Demo2 {

    public int pnum;        //公共的
    protected int pronum;   //受保护的
    int num;                //默认的
    private int prinum;     //私有的

    //在同一个类中可以访问到所有的
    public void test(){
        System.out.println(pnum);
        System.out.println(pronum);
        System.out.println(num);
        System.out.println(prinum);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值