栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面向对象2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象2

面向对象2 对象与引用 变量分类

按数据类型分:

基本类型:8个 byte,short,int,long,float,double,char,boolean

引用类型:数组,String,自定义的类型

创建对象
Person zs = new Person("张三",22);

Person zs:在栈空间声明一个变量;

new Person(“张三”,22):在堆空间创建并存储的对象;

= :把对象在内存中的地址赋给左边的变量,左边的变量只是有对象的引用地址。

值传递与引用传递

值传递(形参类型为基本数据类型):实参把值传给形参,是两个不同的存储单元,故方法执行中形参值改变不影响实参的值。

public class Demo {
    //基本类型值传递
    public static void main(String[] args) {
        Demo d = new Demo();
        int a = 20;
        d.test(a);
        System.out.println(a);
    }
      //形参b,用实参a的值直接对b进行了赋值,在内存中有两个独立的存储空间 a,b
    public void test(int b){
        b = 10; //b的值发生改变,不会影响到a的值
    }
}

引用传递(形参类型为引用数据类型):也称值传递,实参是对象,实参与形参指向同一个地址,故方法执行中形参的改变会影响实参的值。

public class Demo {
    //引用类型 在传递时,传的是对象的地址
    public static void main(String[] args) {
        Demo d = new Demo();
        Person zs = new Person("张三", 18);
        d.test(zs);//只是把对象的地址传递给了p
        System.out.println(zs.name);//输出为李四
    }
    public void test(Person p){ //p和zs指向的是同一个对象
          p.name = "李四";
    }
}
this关键字

声明格式:this.成员变量名

this表示当前操作的对象,在成员方法、构造方法中使用的变量,使用this调用;

用this关键字引用成员变量、成员方法;

用来区分成员变量和局部变量。

static关键字 static

静态,修饰属性、方法、代码块、内部类;

被static修饰的内容随着类的加载而加载,优先于对象存在,被所有对象共享,可以通过类名直接调用(静态方法、静态变量建议使用类名调用);

类变量,和类一样只有一份;

常量一般修饰为static。

static修饰方法(类方法)

静态方法不能使用非静态的成员变量,静态资源随着类先加载,非静态资源随着对象的创建而加载;

非静态方法可以使用静态变量,非静态方法必须通过对象来调用,对象创建之前先加载类

静态变量和非静态变量的区别

(1)静态变量随着类的加载而加载,优先于对象存在,通过类名来调用;非静态变量必须通过对象来调用,对象创建之前先加载类。

(2)静态变量是全局变量,被所有对象共享;非静态变量是局部变量,不共享。

(3)静态方法不能使用非静态的成员变量;非静态方法可以使用静态的成员变量。

代码块

代码块:类似于一个没有名字的方法。

代码块分类

实例代码块:在创建对象后执行,调用构造方法之前,每创建对象一次,调用一次。

{
     System.out.println("实例代码块");
}

静态代码块:静态代码块在类加载的时候执行,只执行一次,多个静态代码块按先后顺序。

static {
        System.out.println("静态代码块");
    }
类什么时候加载

main方法在哪个类中执行,这个类加载;

创建某个类的对象,这个类加载;

调用类中的静态属性、方法,这个类加载。

包 包的功能

为了更好地组织类,Java提供了包机制,区别于类名的命名空间(是类路径中的一部分 地址);

避免类重名;

按功能管理(如GUI、数据访问层、工具类)。

包的命名规则

包名都小写

第一级 项目类型:com(商业)、org(组织)、edu(教育)、gov(政府)

第二级 公司名称:oracle、sun、huawei

第三级 项目名称:oa、erp、cms

第四级 功能模块:窗口/视图层,数据访问层,服务层,工具类

​ 细分子模块

包的导入(import关键字)
import java.util.Date;

import:导入包中的其他类

java.util.Date:类的全名

Date:简称

权限修饰符 权限修饰符的功能

用来修饰类、成员变量、成员方法、内部类,控制对其访问权限;

访问权限和包密切相关。

权限修饰符的分类

public:公共的,类、成员变量、方法、内部类,在任何类中都可以访问到

protected:保护的 ,成员变量、成员方法、内部类

default:默认的(无),类、成员变量、方法、内部类

private:私有的,成员变量、方法、内部类,在本类中可以访问到。

在同包的其他类中只能访问公共的、受保护的、默认的;

私有权限只能在自己类中访问,同包其它类也不能访问;

不同包不同类公共的仍然可以访问,受保护的、默认的不能访问;

在不同包的子类中可以访问父类受保护成员。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/445890.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号