1. 什么是对象,什么是类?
    类:是一个抽象的概念,表示的是一类事物所拥有的共性(属性、方法)。
    对象:是类的具体(实例),对象不仅拥有类的属性和方法(private除外),还有自己专属的属性与方法。

比如:人是一个类,
那么对象就可以有男人,女人,学生,老板等等。
这里类是女朋友

package javaBasis1;//听说你缺女票,new一个吧
public class girlfriend{//这三个是成员变量int age;//年龄属性     int height; //身高属性int weight;//体重属性public girlfriend(String name) {name="翠花";System.out.println("名字什么的才不可能是"+name+"呢");}//女生的化妆行为public void make_up() {//这个是局部变量int time;//化妆时间???System.out.println("没人能碰我的妆,哪怕是我自己!");}public void showgirlfriend(int age,int height,int weight) {System.out.println("My girlfriend:");System.out.println("年龄:"+age);System.out.println("身高:"+height);System.out.println("体重:"+weight);}public static void main(String[] args) {girlfriend one=new girlfriend(null);//‘=’的左边叫做声明对象,右边叫做实例化对象//当对象被实例化后,会调用构造函数初始化对象。(null)表示调用自定义的那个构造函数。one.age=18;one.height=166;one.weight=99;one.showgirlfriend(one.age, one.height, one.weight);}
}

执行结果:

名字什么的才不可能是翠花呢
My girlfriend:
年龄:18
身高:166
体重:99

一个类可以包含成员变量、类变量和局部变量:
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

每个类都有构造方法,如果你自己没有写构造方法的话,java编译器会为该类提供一个默认的构造方法。构造方法与类同名,自己写的可以包含参数,默认的构造方法是无参的。

  1. 什么是对象的引用?
    以1中的程序为列

    girlfriend one=new girlfriend(null);这里面new girlfriend表示以girlfriend为模板,在堆空间中创建一个girlfriend类。
    girlfriend one表示声明一个girlfriend类型的引用对象one,这里的‘=’的意思就是使对象引用one指向创建(new的)的对象girlfriend。

对对象和引用的总结:

  • 一个对象引用可以指向0个或者1个对象
    girlfriend one=new girlfriend(null);(指向一个对象)
    girlfriend two;(指向0个对象)
  • 一个对象可以被多个对象引用指向
    girlfriend one=new girlfriend(null);
    girlfriend two=one;
    girlfriend three=one;
  • Java对象和引用的关系可以说是互相关联,却又彼此独立。彼此独立主要表现在:引用是可以改变的,它可以指向别的对象。
  • 从存储空间上来说,对象和引用也是独立的,它们存储在不同的地方,对象一般存储在堆中,而引用存储在速度更快的堆栈中。
  • 参数传递。Java只有一种参数传递方式:那就是按值传递,即Java中传递任何东西都是传值。如果传入方法的是基本类型的东西,你就得到此基本类型的一份拷贝。如果是传递引用,就得到引用的拷贝。
    例如:
package javaBasis1;public class 引用demo {//传递引用public void demo1(StringBuffer s) {s.append(" world");}public void demo2(StringBuffer s) {s=new StringBuffer(" agin");}//传递基本类型public void demo3(int num) {num=100;}public static void main(String[] args) {引用demo demo=new 引用demo();StringBuffer s=new StringBuffer("hello");demo.demo1(s);System.out.println(s);demo.demo2(s);System.out.println(s);//基本类型demoint num=1;demo.demo3(num);System.out.println(num);}}

运行结果:

hello world
hello world
1

java基础,没事常看看(一)类、对象、引用相关推荐

  1. Java基础语法(七)——类和对象

    文章目录 Java基础语法(七)--类和对象 一.类和对象的初步认识 二. 类和类的实例化 1.类的定义 2.实例化对象 3.如何使用类中的数据 三. 类的成员 1. 字段/属性/成员变量 (1)实例 ...

  2. Java基础学习——第十章 枚举类注解

    Java基础学习--第十章 枚举类&注解 一.枚举类(enum) 1. 枚举类的概念 枚举类:类的对象只有有限个,确定的 线程状态:创建.就绪.运行.阻塞.死亡 当需要定义一组常量时,强烈建议 ...

  3. employee.java,Java基础系列(六):对象与类(上)

    概述 类(class)是构造对象的模板.由类构造对象的过程称为创建类的实例. 封装从形式上看,封装是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式.对象中的数据称为实例域,而操纵数据 ...

  4. Java基础教程(12)--深入理解类

    一.方法的返回值   当我们在程序中调用方法时,虚拟机将会跳转到对应的方法中去执行.当以下几种情况发生时,虚拟机将会回到调用方法的语句并继续向下执行: 执行完方法中所有的语句: 遇到return语句: ...

  5. Java基础——数组应用之StringBuilder类和StringBuffer类

    接上文:Java基础--数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...

  6. java基础--IO流之File类

    一.File类概述 用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作,File对象可以作为参数传递给流的构造函数 二.File类常见方法: 1,创建 boolean createN ...

  7. Java基础巩固(一)类,接口,枚举,常用API,集合,泛型,正则,数据结构

    一.static.final.权限关键字,代码块,接口,枚举 1 关键字 2 代码块 3 接口 4 枚举 idea快捷键 shift + enter 换行 ctrl + Alt + shift + U ...

  8. Java基础之一组有用的类——生成日期和时间(TryDateFormats)

    控制台程序. java.util包中含有相当多的类涉及日期和时间,包括Date类.Calendar类和GregorianCalendar类. Date类对象其实定义了精确到毫秒的时刻,从1970年1月 ...

  9. Java基础知识学习04-自定义类、ArrayList集合

    类与对象 类是一个模子,确定对象将会拥有的特征(属性)和行为(方法). 类的特征:类是对象的类型 具有相同属性和方法的一组对象的集合 类的组成:属性和方法 定义一个类:public class  类名 ...

  10. Java大数据学习第六天------面向对象 类 对象 封装

    面向过程: ​ 强调的是过程, 面向对象: ​ 强调的是结果,只需要关注结果就好. 面向对象的三大特征: 封装: 把相关的数据封装成一个"类"组件 继承: 是子类自动共享父类属性和 ...

最新文章

  1. 遍历百万级Redis的键值的大结局
  2. python应用:最长无重复字串提取
  3. php如何去除侧栏,设置内容区侧栏
  4. Java 堆内存优化
  5. GPU Gems1 - 2 水刻蚀的渲染
  6. 用户体验岗如何说服其他部门_为什么我们应该说服用户更新他们的浏览器-这是双赢的。...
  7. python 安装pandas 权限不够_详解Python学习之安装pandas
  8. (王道408考研数据结构)第二章线性表-第二节2:顺序表的操作
  9. 数字滤波器(二)--最小相位延时系统和全通系统
  10. 表格存储如何实现跨区域的容灾
  11. bzoj 1556 墓地秘密 —— 状压DP
  12. ubuntu 运行级别initlevel
  13. UIScrollView 和 UICollectionView 分页效果
  14. 二进制 八进制 十进制 十六进制 相互转化法
  15. 在线一元二次方程式计算器 源码
  16. 开源·共享·创新|2020年中国.NET开发者大会圆满收官!
  17. 手机共享电脑的proxy网络
  18. docker安装包安装
  19. winSocket第一步WSAStartup
  20. 数组去重newset

热门文章

  1. Windows7_x64下编译64位ffmpeg
  2. 人人都是产品经理 2
  3. day13 Java学习(常见对象正则表达式)
  4. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:让按钮看起来像个链接 (仍然保留按钮行为)...
  5. 函数-生成器之斐波拉契数列
  6. .NET Core 最小化发布
  7. LVM使用手册简化命令
  8. ZeroMQ接口函数之 :zmq_msg_init_data - 从一个指定的存储空间中初始化一个ZMQ消息对象的数据...
  9. 简单-三层-存储过程-增删改四
  10. 2、掌握C++基本语法