1.类是某一批对象的抽象,对象才是一个具体的存在的实体,你我他都是人的实例,而不是人的类。
2.类可以包含三种最常见的成员:构造器,成员变量,方法
3.
4.java世界里,属性,如某个类具有age属性,通常是说,该类包含setAge()和getAge()两个方法。
5.修饰符中,public,protected,private三个最多只能出现其中之一,abstract和final只能出现其中之一。它们可以和static组合起来修饰方法。
6.static修饰的成员表示它属于这个类本身,而不是某个实例,static修饰的成员变量和方法也叫类变量,类方法,不使用的则为实例变量和实例方法。
7.构造器的修饰符(public,private,protected)可以省略,当时用new关键字来调用构造器时,构造器返回类的实例,可以把类的实例当成构造器的返回值,因此构造器的返回值总是当前类i。::
8.对象的作用:(1)访问对象的实例变量,(2)调用对象的方法
9.static修饰的方法和成员变量,既可以通过类来调用。也可以通过实例调用,没有使用static修饰的普通变量和成员方法,只能通过实例来调用。
10.类是一种引用数据类型,当把一个对象赋给一个引用变量时,java让引用变量指向这个对象,引用变量存放的仅仅是一个引用,本身只存储了一个地址值,它指向实际的对象。如 Person p = new Person();Person类型的变量实际上是一个引用,它被存放在栈内存中,指向实际的Person对象,真正的Person对象存放在堆内存中。对象的成员变量放在堆内存中,引用变量只是指向该堆内存的变量,java程序不允许直接访问堆内存中的对象,只能通过该对象的引用操作该对象,多个引用变量可以指向同一个对象。,就像C中指针,java语言把这个指针封装起来,避免开发者进行繁琐的指针操作。如果对内存中某对象没有任何变量指向它,那么程序就将无法在访问该对象,该对象就变成了垃圾,java的GC垃圾回收机制将回收该对象,释放该对象所占的内存区。若想让GC回收某个对象,只需切断该对象的所有引用变量即可,即将这些引用变量赋值为null。
11.this关键字总是指向调用该方法的对象,this作为对象的默认引用两种情形:(1)构造器中引用该构造器中正在初始化的对象(2)在方法中引用调用该方法的对象。 this关键字最大的作用就是让类中的一个方法,访问该类中的另一变量或者方法。

public class Dog{
public void jump(){
System.out.println();
} public void run(){
Dog d = new Dog();
d.jump(); //改成this.jump,也能直接写 jump()省略this前缀,java允许对象的一个成员直接调用另一个成员,即一个方法访问该类中定义的其他方法、成员变量时加不加this前缀都行。
System.out.println();
}
} public class DogTest{
public static void main(Strng[] args){
Dog dog = new Dog();
dog.run();
}
}


在run方法中调用jump方法需要一个Dog对象,没有使用static修饰的变量或者方法必须使用对象来调用。当程序调用run方法时,一定会提供一个Dog对象,通过this代表这个对象。
this可以代表任何对象,this出现在某个方法体中,它所代表的对象是不确定的,但是类型是确定的,代表的对象只能是当前类,只有当这个方法被调用时,他所代表的对象才能被确定下来,谁在调用这个方法,thish就代表谁。
static修饰的方法不能使用this,如果在static修饰的方法中使用this关键字,则该关键字不能指向合适的对象,故static修饰的成员不能访问没有static修饰的成员。

public calsss Test{
public void demo(){
System.out.println();
}
public static void main(String[] args){
demo();
}
}//报错:无法从静态上下文中引用非静态 方法demo()

 java方法的参数传递时值传递,将实参的的副本传给方法的形参,实参本身不会受到任何影响。要想传给实参值被改变,需要将实参的对象传递过去,这样就可以修改实例下的该实参变量,虽然也是值传递,但是对象变量是一个引用,就像传递指针一样。
public void swap(Person ps){
        ps.a=5
    }                                                                                                                                                                                     为方法指定数量不确定的形参。在最后哦一个形参的类型后增加3个点(...),就表示该形参可以接受多个参数值,形参个数可变的参数本质上市一个数组参数。
public static void test(int a, String...books)=====public static void test(int a, String[] books)

java类的回顾的更多相关文章

  1. java:类集回顾

    1.类集设置的主要目的:动态的对象数组 2.类集中有以下几个接口: Collection:是存放单值的最大父接口 |- List接口:里面的内容是允许重复的 |- ArrayList, Vector, ...

  2. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  3. Java类的加载、链接和初始化

    一.Java的类加载机制回顾与总结: 我们知道一个Java类要想运行,必须由jvm将其装载到内存中才能运行,装载的目的就是把Java字节代码转换成JVM中的java.lang.Class类的对象.这样 ...

  4. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

  5. JAVA类和对象创建

    面向对象 学习目标: 理解面向对象的编程思想 理解类与对象的关系 如何创建类与对象 方法重载 一:什么是面向对象编程(OOP) 面向对象编程(Object Oriented Programming,O ...

  6. Java类的定义与类的实例化

    目录 Java类的定义与类的实例化 类的定义 定义一个简单的类 定义一个成员变量 定义一个方法 定义一个构造器 类的实例化 创建对象及使用对象: 创建对象的过程在内存中的表现 Java类的定义与类的实 ...

  7. Java类集框架详细汇总-底层分析

    前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...

  8. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  9. jvm系列(一):java类的加载机制

    java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...

随机推荐

  1. Using Android Phone to recover SD card formatted with DD command under linux

    Using Android Phone to recover SD card formatted with DD command under linux 1. Formatted a sd card ...

  2. [转帖]Nginx的超时keeplive_timeout配置详解

    Nginx的超时keeplive_timeout配置详解 https://blog.csdn.net/weixin_42350212/article/details/81123932   Nginx  ...

  3. [安全]appscan 使用代理抓取其他客户端的请求

    自己安全测试技能很低, 上级给的安全测试的任务给了自动化组的同事来做, 自己之前使用appscan的时候 只知道使用appscan的内置浏览器测试抓取请求 今天与自动化美女同事沟通发现有一个代理的功能 ...

  4. 线性代数的本质与几何意义 03. 矩阵与线性变换 (3blue1brown 咪博士 图文注解版)

    首先,恭喜你读到了咪博士的这篇文章.本文可以说是该系列最重要.最核心的文章.你对线性代数的一切困惑,根源就在于没有真正理解矩阵到底是什么.读完咪博士的这篇文章,你一定会有一种醍醐灌顶.豁然开朗的感觉! ...

  5. VMware Linux虚拟机yum源更换成国内阿里源

    [虚拟机系统] Centos 6.8 阿里源:https://opsx.alibaba.com/mirror 网易源:http://mirrors.163.com/ 更换yum源时请保证虚拟机和外网是 ...

  6. 睡前小dp-poj1276-多重背包+二进制优化

    http://poj.org/problem?id=1276 简单的多重背包,不过需要优化一下才能过.网上还有暴力的做法. 二进制优化在背包九讲里讲的比较清楚.对于多重背包的每一件物品,使用二进制的形 ...

  7. BZOJ5294 [BJOI2018] 二进制 【线段树】

    BJOI的题目感觉有点难写 题目分析: 首先推一波结论.接下来的一切都在模3意义下 现在我们将二进制位重组,不难发现的是2^0≡1,2^1≡2,2^2≡1,2^3≡2....所以我们考虑这样的式子 2 ...

  8. Scout YYF I POJ - 3744(概率dp + 矩阵快速幂)

    题意: 一条路上有n个地雷,你从1开始走,单位时间内有p的概率走一步,1-p的概率走两步,问安全通过这条路的概率 解析: 很容易想到 dp[i] = p * dp[i-1] + (1 - p) * d ...

  9. Android Studio中Git和GitHub使用详解

    一.Git和GitHub简述 1.Git 分布式版本控制系统,最先使用于Linux社区,是一个开源免费的版本控制系统,功能类似于SVN和CVS.Git与其他版本管理工具最大的区别点和优点就是分布式: ...

  10. CF1073E Segment Sum 解题报告

    CF1073E Segment Sum 题意翻译 给定\(K,L,R\),求\(L~R\)之间最多不包含超过\(K\)个数码的数的和. \(K\le 10,L,R\le 10^{18}\) 数位dp ...