Java面向对象编程--->this、static、代码块、package、import、封装

一、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方法中加入属性控制语句--->对属性值的合法性进                                    行判断

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值