一、this关键字
1、this的作用:
-this表示的是当前对象本身,代表当前对象的一个引用;
2、this的用法:
普通方法:区分类成员属性和方法的形参;
调用当前对象的其他方法;
位置:任意
构造方法:使用this来调用其他构造方法;
位置:必须是第一条语句;
this不能用于static方法;
this测试代码:
public class ThisDemoPPT {
int a;
int b;
int c;
ThisDemoPPT(){
System.out.println("正要new一个Hello对象");
}
ThisDemoPPT(int a, int b){
this();
this.a = a;
this.b = b;
}
ThisDemoPPT(int a, int b, int c){
this(a,b);
this.c = c;
}
public void sing(){
}
public void eat(){
this.sing();
System.out.println("你妈妈喊你回家吃饭了!");
}
public static void main(String[] args) {
ThisDemoPPT hi = new ThisDemoPPT();
hi.eat();
}
}
二、static关键字
1、在类中,用static声明的成员变量为静态成员变量,或者叫做:类属性,类变量
2、静态成员变量为该类的共用变量,属于类,被该类的所有实例共享,在类被载入时被显 示初始化;
3、对于该类的所有对象来说,static成员变量只有一份,被该类的所有对象共享
4、可以使用“对象.类属性"来调用。不过,一般建议使用 类名.类属性
5、static变量置于方法区中
6、用static声明的方法为静态方法
不需要对象,就可以调用(类名.方法名)
在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可以访问非static 的成员
7、静态方法不能以任何形式引用this和super关键字
static测试代码:
public class StaticDemoPPT {
int a;
static int width;
public static void gg(){
System.out.println("gg");
}
public void tt(){
System.out.println("tt");
}
public static void main(String[] args) {
StaticDemoPPT sd = new StaticDemoPPT();
StaticDemoPPT.width = 2;
StaticDemoPPT.gg();
sd.tt();//不可以直接使用类名调用
}
}
static修饰与非static修饰的区别:
static、非private修饰 | 非static、private修饰 | |
属性 | 类属性、类变量 | 实例属性、实例变量 |
方法 | 类方法 | 实例方法 |
调用方式 | 类名.属性;类名.方法 对象.属性;对象.方法 | 对象.属性 对象.方法 |
归属 | 类 | 单个对象 |
三、代码块
1、概念:使用”{}“括起来的一段代码;
2、分类:根据位置可分类;
3、普通代码块-->直接在方法或语句中定义的代码块;
4、构造代码块-->直接写在类中的代码块;
5、静态代码块-->使用static声明的代码块;
6、同步代码块-->多线程使用
四、package
1、需要package是为了解决类之间的重名问题;
2、为了便于管理类;合适的类位于合适的包;
3、package的使用:通常是类的第一句非注释性语句
4、包名:域名倒着写即可,再加上模块名,并不内部管理类;
5、注意事项:写项目时需要加包
6、写项目时都要加包,不要使用默认包;
7、com.gao和com.gao.car,这两个包没有包含关系,是两个完全独立的包;
五、JDK中主要的包:
1、java.lang
包含一些Java语言的核心类,如Sring、Math、integer、System和Thread
2、Java.awt
3、Java.net
4、Java.io
5、java.util
六、import
1、为什么需要使用import
如果不使用import,我们如果用到其他包的类的时,只能这么些:java.util.Date.代码量 太大,不利于编写和维护。
2、import的使用:import java.util.Date;import java.util.*//导入该包下所有的类
3、import静态导入:import static java.lang.Math.PI
然后我们可以在程序中直接使用System.out.println(PI);
七、封装
1、面向对象的三大特征之一 ------ 封装;
2、封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方 法来实现对隐藏信息的操作和访问
3、封装的好处:只能通过规定方法访问数据;隐藏类的实现细节;方便修改实现;方便加入 控制语句;
4、我们的程序设计追求”高内聚,低耦合“
5、高内聚:类的内部数据操作细节自己完成,不允许外部干涉;
6、低耦合:仅暴露少量的方法给外部使用。
7、使用封装:①修改属性的可见性--->设为private②创建公有的getter/setter方法--->用于属 性的读写③在getter/setter方法中加入属性控制语句--->对属性值的合法性进 行判断