面向对象oop

  • Java 语言中除基本类型之外的变量类型都称之为引用类型。
  • Java中的对象是通过引用对其操作的.

this 关键字

普通方法中,this总是指向调用该方法的对象

构造方法中,this总是指向正要初始化的对象

this最常的用法:

让类中的一个方法,访问该类的另一个方法或属性。

使用this关键字调用重载构造方法。避免相同的初始化代码,只能在构造方法中用,并且必须位于构造方法的第一句

this不能用于static方法。

 static关键字:
 一.使用static关键字修饰成员变量(静态成员变量)
 public String name:成员变量(实例变量)--->每一个对象1份
 public static String classRoom:静态成员变量(类变量)--->每个类只有1份(该类中所有 的对象共享1份) * 静态成员变量与成员变量 * 1.在内存中保存位置不同:成员变量保存到堆中,静态成员变量保存到方 法区中
2.在内存中保存的份数不同:成员变量每个对象1份,静态成员变量所有对象共享1份
 3.访问方式:
 成员变量:对象名.属性 stu1.name="张三"
 静态成员变量: 对象名.属性 stu1.className="A101"
类名.属性 Student.className="A101" 推荐
 4.在内存中分配空间的时间不同:
 成员变量:创建对象分配空间
 静态成员变量:第一次加载类的时候在方法区中分配空间

 二.使用static关键字修饰方法(静态方法): 可以访问静态成员变量
 静态方法中不能使用this关键字(必须先创建对象)
 调用方式: 对象名.方法名() stu1.shut()
 类名.方法名 Student.shut(); 推荐
 在静态方法中无法访问非静态的成员变量, 而在非静态方法中是可以访问静态成员变量
 总之:静态方法只能方法静态,非静态都可也访问


推荐使用的访问方式:类名.属性或类名.方法名
 1.使用static修饰成员变量--->静态成员变量(类变量)
 2.使用static修饰方法--->静态方法(类方法)

* 3.使用static修饰代码块: static代码块>代码块>构造函数>成员方法
* 代码块:很少用,创建对象之前会被执行,并且按照先后顺序进行执行,执行多次
* {
* //代码
* }
* (常用) 静态代码块:使用static修饰的代码块(类代码块),先于代码块和构造函数执行,并且按照先后顺序进行执行,执行1次
* static{
* //代码
* }
* 使用场景:如果在创建对象之间只做一次对象初始化或向在创建对象之前执行某段通用的代码

 


*Java中的包:
*作用:1.避免命名冲突 2.方便管理
*声明包:package 包名; 必须放在非注释的第一行语句
*包的命名规则
* 报名全部小写
* 顶级域名:com,org,cn,net,cc,edu...
* 顶级域名.域名.项目名.模块名.子模块名称
* com.sun.corba.se.impl
* Java中常用的包:除 java.lang包中的类或接口可以直接使用外,其他包的类需要使用import导包
* java.lang:java核心常用类或接口,System,Math,String...,使用时无需导包
* java.util:常用工具包,Scanner,Arrays,Date....
* java.io:输入(流)/输出(流)常用类,上传/下载等功能的实现
* java.net:与网络相关的操作类
* java.sql:与数据库操作相关的类或接口
* java.awt:与窗口或图形化界面相关的类
* ....
* import关键字:导包操作
* 本包中用到非java.lang包下的类时需要使用import导包。
* import 包名.类名;或者 import 包名.*;
* 如果不使用import导包,在使用非java.lang包下类时需要使用全类名(包名.类名)
* 如果当前类中所使用的Student在不同的包下都存在,必须使用全类名加以区分
*
* 静态导入: JDK5.0新增的特性
* import 包名.类名.*; 或者 import 包名.类名.属性|方法;
* import java.lang.Math.*; import java.lang.Math.PI;

原文地址:https://www.cnblogs.com/seePoppy/p/6710730.html