day10 this、static、package

加前缀是为了找到它。 String 在java中是引用数据类型 文件名 : 能够找到这个文件的全路径。

局部变量 属于栈帧私有化 栈帧独享
构造方法 : [权限修饰符] 类名(参数) {方法体}
作用: 创建对象,初始化成员属性。

成员方法名可以和类名相同,
如何区分同名的成员方法和构造方法?
看返回值,构造方法木有返回值,成员方法必须有返回值类型,如果没有用void表示
this:this是每个对象中,保存自身内存地址的一个引用类型的成员变量
this功能: 1在成员/构造方法中,能够区分 同名 的 局部变量 和 成员变量(谁调用的这个成员方法,this就是谁)
2 在构造方法中,也可以用于重载调用当前类中其他的构造方法(必须在有效代码第一行) 语法:this(参数) --------
3 return this 返回当前对象内存地址。可以做到链式调用(xxx.方法().方法().方法()…) 核心点:前者方法返回值一定是可以调用后者方法的 引用

谁调用this这个成员方法,this就是指谁。
this不可以出现在静态上下问中

static : 是一个修饰符关键字,用来区别 静态属性 和动态属性
功能: 1 static修饰的类体中的变量是静态变量
2 static修饰的方法是静态方法
3 static修饰的语句块是静态语句块 语法: static {Java 代码;}

静态语句块是在类加载阶段执行,只执行一次,从上往下执行。
静态变量也是在类加载阶段初始化,并且和静态语句块没有优先级之分,从上向下执行初/初始化,所以 不能在静态语句块中提前使用静态变量。 执行顺序: 静态变量=静态代码块(按先后顺序执行)>静态方法

什么情况下 类 加载 : 访问某个类的静态属性的时候,类加载 之后,有关静态的内容加载 有关静态的,用到才加载,不用时不加载 java是动态加载机制

实例/动态语句块:等同于成员方法,只是没有名字
执行顺序 : 静态语句块 > main方法 > 实例语句块(需要new对象 才会执行)>构造方法

静态调用:可以使用 类名.调用 也可以使用对象调用(因为在编译阶段,会把对象引用变量转换为对应的类名去调用).
一个对象把静态变量值更改,所有对象访问都是更改后的值。(静态是共享数据)

成员变量 : 创建对象的时候初始化(构造方法)

  • 应用场景 :
  • 静态变量 : 类级别的,是所有对象共享的属性和值,比如一个静态变量 age = 10 ,那么说明所有对象都有这个age属性,并且值都是18
  • 成员变量 : 对象和对象之间有相同的属性,但是可能有不同的值,非对象共享

封装:
封装是把对象的所有组成部分组合在一起,封装使用访问控制符将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。
作用
适当的封装可以让代码更容易理解和维护,也加强了代码的安全性。

Package

  • 目标 : 当前文件的编译和运行
  • 软件包机制 :
  •  1 为了解决类的命名冲突问题
    
  •  2 在java中使用package语句定义包
    
  •  3 package语句只能出现在java源文件中的第一行
    
  •  4 包命名通常采用公司域名倒叙
    
  •  5 package限制的是class文件的放置位置(编译之后,把class文件放到哪里去)
    
  •  com.tledu.oa.system	此包命名可以体现出来 : 这个项目是天亮教育开发的OA项目,当前处于OA项目中的system模块
    
  •  6 完整的类名 是带有包名的
    
  •  7 带有包名的文件,编译应该是这样
    
  •  		javac -d 生成路径  java源文件路径
    
  •  		javac -d ./ -encoding utf-8 _01_Package.java
    
  •  8 运行
    
  •  	java 包名.类名
    

文件名 : 能够找到这个文件的全路径。

Import: 导包。 使用当前包下的类的时候,直接写类名就可找到。
使用非当前包下的类的时候,必须写类全名(包名.类名)才能找到
// 导入单个类 import _05_Package.com.B; import 包名.类名; 导入单个类
// 导入该包下所有类 import _05_Package.com.; import 包名.; 导入该包下所有的类

  • import :
  •  1 引入其他需要的类
    
  •  2 只能出现在package语句执行,class语句之上
    
  •  3 java核心类不需要导入,可以直接用,其他都不行		(java.lang)?  
    

注意 : eclipse编程过程中,按空格的时候 会自动导包,如果程序没问题,但是报错,可以查看是不是包导错了

  • 导入该类中所有的静态属性(静态变量/静态方法),让当前类可以不加前缀,直接调用
  •  	import static _05_Package.com.B.*;
    
  •  	不建议这样使用,在当前类中,不容看出来,这个变量是谁的变量 				
    

权限修饰符:
private: 私有化权限修饰符 ,除了自己(当前类)之外,都不能访问
default(默认修饰符): 不写权限修饰符的时候 : 要么当前类中使用,要么当前包中使用
protected: 受保护的权限修饰符 , 要么同类,要么同包,要么有继承关系
public: 公共的权限修饰符 , 谁都能访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值