Java学习笔记-- 面向对象2

本文主要探讨了Java中面向对象的几个核心概念,包括对象与引用的区别,值传递与引用传递的原理,static关键字的使用,代码块的作用,以及包和访问权限修饰符的详细解释。通过这些内容,读者可以更深入理解Java面向对象编程的本质。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 面向对象

对象与引用

Java语言中除基本基本类型外的变量类型都称之为引用类型

Java的对象时通过引用对之进行操作的

例:

public class Practice {

    String name;
    String adderse;
}
Practice zs=new Practice();//创建对象
/*new Practice() 是一以pratice为模板 调用Practice类的构造方法
在堆空间里面创建了Practice的对象
Practice zs 创建了一个Practice的引用变量
*/
/*
可拆为两部分
Practice zs;
zs=new Practice();
*/

基本类型与引用类型的区别

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

它的值就是一个数字,一个字符或一个布尔值.

引用数据类型 类,接口,数组

它的值是对象在内存空间中的地址,具体的对象存在堆中.

值传递与引用传递

Java中进行方法调用传递参数时,参数传递分两种:

值传递(形参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递(形参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象,这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身,而是地址

static关键字

static 静态的 用来修饰类的属性 方法 代码块 内部类

在内存中只有一份 跟随类加载 先于对象加载

static方法可以对象调用,也可以直接类名调用建议直接用类名调用

static方法内部只能访问类的static属性 不能访问类的非static属性

public class SaleTicket {

    static  int ticket=12;
    /*静态方法只能调用静态变量
    * 静态方法  调用  类名.方法名();
    *
    * */
    public  static void saleit(){

        ticket=ticket-1;
        System.out.println("剩余票数"+ticket);

    }

    public static void main(String[] args) {
        SaleTicket.saleit();
        SaleTicket.saleit();
        SaleTicket.saleit();
    }

}

代码块

在类中声明 类似一个没有名称的方法体(代码块),代码块分实例块静态块

实例块 每次创建对象时会自动调用

{

//java代码

}

静态块 类加载是否创建对象无关时自动调用 只有一次 与是否创建对象无关

static{

//java代码

}

public class Pratice2 {


        static int a=8;
    {
        System.out.println("实例块");
    }
   static {
        /*跟随类只加载一次
        * 多个静态块按顺序加载
        * */
       System.out.println("静态块");
   }

    public static void main(String[] args) {
        new Pratice2();
        System.out.println(a);
    }

}

包的概念 : 包就是文件夹

包的作用 : 避免类重名 按照不同功能管理类 控制访问权限

包的命名规范 : 在包名中 可以使用 **.**来区分包的级别 包名一般情况下是小写

第一级 指该项目的类型 例如 com org gov

第二级 指项目所开发或者运行的公司名称 例如 oracle,sun,huawei

第三级 指项目名称 例如 bcms,oa,erp,cms

第四级 项目模块名称 例如 bean,action,exception

若要导入外部包的类 用关键字 import

类的地址 若导入不同包的类名相同,从第二个类开始使用全类名

import java.util.Date;

访问权限修饰符

public 公共权限 可修饰类 属性 方法 可被任意类访问

public class Pratice2 {//修饰类
public  String a="public";//修饰属性

 public void Test(){//修饰方法

        Pratice2 u1=new Pratice2();
        System.out.println(u1.a);}
}

protected 受保护权限 修饰属性方法

可以被同包类访问,如果不是同包类,必须是该类的子类才可以访问。

protected String b="protected";

default 同包权限 修饰类 属性 方法 只能被同包的类访问

String c="default";//为默认

private 私有权限 修饰属性 方法 只在本类中访问

 private String d="private";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值