JAVA07-java引用数据类型声明及使用、权限修饰符、封装类、对象数组相关知识梳理

高度总结JAVASE知识点,梳理对比易混淆知识点与注意事项,建议收藏 类 一般的类 public class ClassName{ //这就是一个类 private String name; // 成员变量 public ClassName(){}; //无参构造方法 public ClassName(int i){ //有参构造方法 } public void student(){ ... 阅读详情

引用数据类型的使用

1.引用数据类型作为参数进行传递时
引用数据类型作为参数进行传递时,形参可以改变实参的内容,但是不能该改变实参对象本身

package com.qf;

public class People {
    public static void changeName(Dog d){
        d.color="粉色";
    }


    public static void main(String[] args) {
        Dog v = new Dog("白色","牧羊犬",'母',2);
        System.out.println(v.toString());
        changeName(v);
        System.out.println(v.toString());
    }
}

2.引用属性类型作为属性进行声明时
模拟人有一条狗

public class People {
    private String name;
    private Integer age;
    private Dog dog;

    public People(String name, Integer age, Dog dog) {
        this.name = name;
        this.age = age;
        this.dog = dog;
    }

    public People() {
    }

    @Override
    public String toString() {
        return "People{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", dog=" + dog +
                '}';
    }
public class Dog {
    String color;//颜色
    String type;//品种
    char sex;//性别
    int age;//年龄


    public void playWithMaster(){
        System.out.println("陪主人玩");
    }

    public void makeHappy(){
        System.out.println("使主人开心");
    }
    public String makeugle(){
        return "ugle";
    }

    public Dog() {
    }

    public Dog(String color, String type, char sex, int age) {
        this.color = color;
        this.type = type;
        this.sex = sex;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "color='" + color + '\'' +
                ", type='" + type + '\'' +
                ", sex=" + sex +
                ", age=" + age +
                '}';
    }
public class test1 {


    public static void main(String[] args) {
        Dog v = new Dog("白色","牧羊犬",'母',2);
        People p = new People("张三",18,v);
        System.out.println(p.toString());
    }
}

模拟人送狗

public class test1 {


    public static void main(String[] args) {
        Dog v = new Dog("白色","牧羊犬",'母',2);
        People p1 = new People("张三",18,v);
        System.out.println(p1.toString());
        People p2 = new People("王五",20,null);
        System.out.println(p2.toString());
        p2.lendDog(p1,p2);
        System.out.println(p1.toString());
        System.out.println(p2.toString());
    }
}
public void lendDog(People p,People p1){
        p1.dog=p.dog;

        p.dog=null;
    }

访问权限修饰符

  • 权限修饰符可以修饰类,属性,方法,从而来控制他们的可见范围
  • public 所修饰称为公有的,任何地方都可以看得到(同一个类,同一个包,不同的包)
  • privatec 所修饰称为私有的,只要同一个类下面可以看到(同一个类)
  • 默认的,什么都不写,只有在同一个类和同一个包下面可以访问(同一个类,同一个包)
  • 在这里插入图片描述
    封装类
    5.类的分类
    javaBean的规范
    第一步:属性私有化,别忘了加注释
    第二步:设计构造方法的重载(有参和无参)
    第三步:设计get和set方法
    第四步:别忘了toString()方法
    注意:如果你打印对象出现的是内存地址,那么你一定没有写toString()方法

对象数组的排序及用法

package com.qf;

import java.util.Arrays;

public class Demo {
    public static void main(String[] args) {
        Student[] ss ={ new Student("张三",'男',85,16),
                new Student("张三1",'男',70,16),
                new Student("张三2",'男',65,16),
                new Student("张三3",'男',100,16),
                new Student("张三4",'男',95,16)};
        //遍历
        System.out.println(Arrays.toString(ss));
        int sum = 0;
        int average=0;
        //算出平均分
        for(int i=0;i<ss.length;i++){
            sum+=ss[i].getScorce();
        }
        average=sum/ss.length;
        System.out.println("平均分为"+average);

        //排序
        //外层循环表示总共比较的轮次
        for(int i=0;i<ss.length-1;i++){
            for(int j=0;j<ss.length-1-i;j++){
                if(ss[j].getScorce()>ss[j+1].getScorce()){
                    //根据两个人的成绩比较之后,是换两个对象在数组中的下标
                    Student temp = ss[j];
                    ss[j]=ss[j+1];
                    ss[j+1]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(ss));
    }
}

JAVASE相关知识点 涵盖了java大部分基础知识 阅读详情

相关推荐

告别编译报错!手把手教你用VS2022命令行编译curl静态库(附完整测试代码)

本文详细介绍了如何在VS2022环境下通过命令行编译curl静态库,从环境准备、编译实战到项目集成,提供了完整的避坑指南和测试代码。特别针对常见的编译报错如LNK2019等给出了具体解决方案,帮助开发者高效完成网络库的静态编译与集成。

weixin_42557803的博客 448

java 声明 类型_Java引用数据类型的声明与创建

一 java语言中变量可分为两种:1.成员变量2.局部变量。二 数据类型也可分为两种:1值类型,即基本类型,共四类八种,分别为boolean、char、byte、short、int、long、float、double;2引用类型,可类比为C++中的指针,不过java中没有指针这一概念,也不允许程序猿显示的操作堆栈等内存空间,一定程度上避免了C++中对指针操作不当造成的内存泄露等一系列问题。三 学习...

weixin_28974985的博客 390

python代码爬取大众点评评论!直接copy就可以运行!

python代码爬取大众点评评论!直接copy就可以运行!

QiuQiRuQin的博客 1万+

Java引用数据类型的声明与创建

一 java语言中变量可分为两种:1.成员变量2.局部变量。 二 数据类型也可分为两种:1值类型,即基本类型,共四类八种,分别为boolean、char、byte、short、int、long、float、double;2引用类型,可类比为C++中的指针,不过java中没有指针这一概念,也不允许程序猿显示的操作堆栈等内存空间,一定程度上避免了C++中对指针操作不当造成的内存泄露等一系列问题。 ...

weixin_34265814的博客 299

android技术--------如何解决弹出键盘只影响当前fragment输入的窗口

题目比较长,也可能有很多人不明所以这东西有啥可写的,简单来说就是实现近似于Android Pad 上QQHD聊天的界面效果,搞了很长的事件,今天终于搞定。 android3.0新加了组件Fragment称之为碎片,对这个一无所知的请自觉补习。今天的阐述将基于此组件。 fragment可以放入activity中,并随activity的生命周期变化而变化,但当相应键盘事件的时候,就比较让人挠头了,

3507

手把手教学,Python 游戏编程之实现飞机大战(含源代码)

我想大家都是有玩过类似飞机大战的射击类游戏,也享受目标被消除通过后带来的愉悦感。那么如果用Python来实现飞机大战游戏?下面就跟大家一起用Python来做一个小游戏,不仅可以从中感受到乐趣,还可以提升自己的能力。

veratata的博客 1万+

java 引用变量_Java 引用类型变量的声明和使用

引用类型变量的声明和使用(1)把类名当作是一种类型来声明变量,这种变量叫引用类型变量。如:People people;(2)引用类型变量保存对象的“引用”,即对象的地址。(3)对象的创建  new 类名()  如:new People();(4)new创建对象后返回对象的引用,对象没有名字,只能使用对象的引用间接使用对象,引用类型变量就是专门用来保存对象引用的。如:People people = ...

weixin_39902085的博客 877

NoUnityCN:绕过地域限制,从Unity官方CDN直链下载全版本编辑器

在软件开发和游戏制作领域,内容分发网络(CDN)是保障全球用户高速、稳定获取大型文件的核心基础设施。其原理是通过将资源缓存至遍布各地的边缘节点,使用户能从地理距离最近的服务器获取数据,从而显著提升下载速度并降低源站压力。这一技术对于需要频繁下载大型开发工具(如游戏引擎)的团队而言,价值在于能确保开发环境部署的一致性与效率,是构建自动化CI/CD流水线和团队协作的基础。然而,当开发者因网络策略或地域限制无法直接访问官方CDN时,获取安装文件便成为阻碍工作流的痛点。NoUnityCN项目正是针对此场景的工程实践

weixin_33473110的博客 316

Java中数据成员的封装

今天写了关于C++中友元函数的实验总结。想到数据成员的封装。  就像在Java中,对每个数据成员都应该声明为private。在JavaBean中更应该如此。例如: public class Person {        private String name;

PP1PP1PP2的专栏 1772

保姆级教程:手把手带你复现APFNet论文的RGBT目标跟踪模型(附完整代码与数据集配置)

本文提供了一份详细的APFNet论文复现指南,涵盖从环境搭建到模型测试的全流程。通过解析多模态融合模块和渐进式训练流程,帮助读者高效完成RGBT目标跟踪模型的复现工作,特别针对训练和测试中的常见问题提供实用解决方案。

weixin_29056781的博客 344

推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统相关算法流程、衡量指标和应用,以及如何使用jieba分词库进行相似推荐,业界广告推荐技术最新进展

推荐算法其实本质上是一种信息处理逻辑,当获取了用户与内容的信息之后,按照一定的逻辑处理信息后,产生推荐结果。热度排行榜就是最简单的一种推荐方法,它依赖的逻辑就是当一个内容被大多数用户喜欢,那大概率其他用户也会喜欢。但是基于粗放的推荐往往会不够精确,想要挖掘用户个性化的,小众化的兴趣,需要制定复杂的规则运算逻辑,并由机器完成。召回:当用户以及内容量比较大的时候,往往先通过召回策略,将百万量级的内容先缩小到百量级。

丨汀、的博客 7594

Java SE知识梳理

基础 运算符 编译器优化 byte、short、char的赋值优化 常量优化 位运算 流程控制语句 switch 多个case后面的数值不可以重复。 不能写else,只能写default。 switch后面小括号当中只能是下列数据类型: 基本数据类型:byte/short/char/int 引用数据类型:String字符串、enum枚举 穿透switch语句 switch语句格式很灵活:前后顺序可以颠倒,而且break语句还可以省略。 匹配哪一个case就从哪一个位置向下执

Luis 352

Qt之自定义QToolTip,去掉显示动画和隐藏延时

先来看看Qt原生QToolTip的缺点:1.当提示内容无变化时,弹窗无法移动。只能先传个空字符串强制弹窗隐藏,然后在新位置再传个字符串。2.默认显示10多秒才消失,当然这个时间是可以设置的,但是如果我想一直显示呢?总不能设置一个超级大的时间吧。3.鼠标移出控件后(调用QToolTip::showText时传入了控件指针)默认300毫秒弹窗才隐藏。而且这个时间没法设置,如果想立即隐藏就没办法了。

草上爬的博客 4269

JAVA基础及高级知识系统梳理

主要为笔者JAVA学习过程中的学习笔记

一只向入研坑的程序猿 1770

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Java】P14 阶段性小结:面向对象编程核心概念梳理(针对前13篇博文内容)

本次小结涵盖了从编程思想到具体语法、从核心概念到设计原则的方方面面。类、对象、属性、方法、构造器以及封装性,共同构成了Java面向对象编程的基石。希望这次梳理能帮助你将零散的知识点串联成网,为后续学习继承和多态等更高级的概念打下坚实的基础。继续加油!2025.10.13 金融街。

weixin_43098506的博客 1019

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java基础知识复习(1)

1.成员变量、局部变量、静态变量代码理解。 public class Var{ public String s1="s1";//成员变量 public static String s2 ="s2";//静态变量 public void getStr(){ //局部变量 String s3="s3"; } } 2.常量的定义 public stat...

java之书-资源 2610

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JAVA基础学习/复习-数据类型、流程控制、类与对象、封装/继承/多态、接口与抽象类。

变量直接存真实数值,存栈内存,有各自默认值。

peter_ww的博客 478

06、Java 基础硬核复习:面向对象编程(基础)的核心逻辑与面试考点

本文系统梳理了Java面向对象编程(OOP)的基础核心知识与高频面试考点。主要内容包括:面向对象思想与类对象概念、类成员与实例化过程、方法定义与调用机制、对象数组与可变参数使用、递归方法与权限修饰符应用、构造器特性与JavaBean规范等。重点解析了类与对象的内存模型、方法值传递机制、对象数组初始化陷阱等常见面试问题,并强调了封装、继承、多态三大特性在实际开发中的应用。文章最后指出,深入理解这些基础概念是掌握更高级OOP特性的关键,也是应对技术面试的重要准备。

m0_60277481的博客 539

【Java】面试必考知识点五分钟过完

反射是通过获取类的class对象,然后动态的获取到这个类的内部结构,动态的去操作类的属性和方法。应用场景有:要操作权限不够的类属性和方法时、实现自定义注解时、动态加载第三方jar包时、按需加载类,节省编译和初始化时间;获取class对象的方法有:class.forName(类路径),类.class(),对象的getClass()

2401_89664701的博客 2474

面向对象的知识点

import ----> 在当前类中,如果要使用其他包下的类(除java.lang包),原则上就需要导入包。>this ---> 在构造器内 用"this.属性"表示当前属性或方法所属的对象。>package -->指明声明的类所属的包。>static 分成类变量和实例变量。>>>>>>>>>Java类的成员。>>>>>>>>>>关键字的使用。>>>>>>>>权限修饰符。>>>>>面向对象的特征。>缺省(default)面向对象内容的三条主线。>>>属性(成员变量)>可变个数形参的方法。

2501_93521867的博客 98

暑假Java知识点回顾:类与对象知识总结

介绍我们在暑假学习的内容

2601_96515273的博客 474

重学Java - 面向对象

Java 面向对象三大主线 Java 类及类的成员 属性、方法、构造器、内部类 面向对象的三大特性 封装(Encapsulation)、继承(Inheriance)、多态(Polymorphism)、(抽象) 其他关键字 this、super、static、final、abstract、interface、package、import 面向过程(POP)与面向对象(OOP) 面向过程:POP - Procedure Oriented Programming 面向对象:OOP - Object Oriente

backups 397

JAVA 知识点总结

在Java中,方法重写(Override) 是指子类重新定义父类中已有的方法,以提供特定的实现。这是实现运行时多态的关键机制。接口是Java中一种完全抽象的类,它定义了一组规范或契约,但不提供具体实现。接口指定了"做什么",而不关心"怎么做"。抽象类(Abstract Class)抽象类是不能被实例化的类,用于被其他类继承。它介于普通类和接口之间:可以包含抽象方法(没有实现的方法)也可以包含具体方法(有实现的方法)可以有成员变量、构造方法、静态方法等。

2503_93933377的博客 570

JAVA知识杂记

修饰方法,静态方法, 可以使用类名和对象名调用,可以用来设计工具类,可以直接访问静态成员但不可以直接访问实例成员,实例成员可以直接访问静态成员,静态方法不能使用this关键字。继承:使用extends关键字,建立类之间的父子关系,减少重复代码,方便对代码进行扩展,子类可以调用父类的方法属性,单继承,多层继承,Object时所有类的祖宗类,就近原则访问成员。public:任意位置,protected:本类,同一个包中的类,子类 缺省:本类,同一个包的类 private:只能本类。

qq_63321550的博客 504

JAVA基础知识回顾和整理

变量是存储数据的基本单元,通过名字访问,数据可以变化。变量必须先声明后使用。Java的8种基本数据类型类型说明示例int整数(32位)double双精度浮点数(64位)char单个字符(16位Unicode)boolean布尔值(true/false)byte小整数(8位)short短整数(16位)long长整数(64位)(注意L后缀)float单精度浮点数(32位)(注意f后缀)

LF19971222的博客 574
上一篇: JAVA06-面向对象、类、对象、构造方法、this关键字、匿名对象相关知识梳理
下一篇: JAVA08-局部变量成员变量、static关键字、继承、重写重载关系知识梳理
X_C~!
博客等级 码龄6年 4粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值