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. Bash on Ubuntu on Windows 到底想干啥?apt update又能解决啥问题?

  2. laravel 数据库获取值的常用方法

    ---恢复内容开始--- find($id) 需要一个主键$id并返回一个模型对象,若不存在则返回null findOrFail($id) 需要一个主键$id并返回一个模型对象,若不存在则发生错误,抛 ...

  3. mysql 和php 保留2位小数

    一般交易中保留的数字的小数位数为2位(即最小单位为 1分钱[0.01元]) 数据库设计中预金钱有关或要求精准度要高的用 decimal(n,m) 表示,n表示保留的数字长度,保留的小数位数,如deci ...

  4. Oracle11.2.0.1 升级Oracle11.2.0.4 后 listener 的端口改变需要处理

    1. 因为Oracle采取了异地升级 发现 Oracle的端口号发生了变化: 2. 如果之前的连接还需要用的话 需要禁用 dbhome1 里面的监听 只打开dbhome2的监听 并且修改 监听的端口号 ...

  5. scipy线性模块liner(linalg)

    #liner import numpy as np from scipy import linalg as lg arr=np.array([[1,1],[0,1]]) matr=np.mat('[1 ...

  6. js regex variable & Set, Map

    js regex variable & Set, Map regex, variable, Set, Map, 交集, 差集, 并集, https://stackoverflow.com/qu ...

  7. 买了本Delphi面向对象编程思想,正在看,产生些问题。

    1:第33页说,Delphi通过调用类的一个构造函数来建立一个对象的实例,对象至少有一个create()的构造函数,使用时候写MyObject:=TmyObject.create即可.   但是第37 ...

  8. jquery遍歷

    遍歷是什麼? jquery的遍歷指的是移動,就是從選中的元素根據元素之間的關係移動,直到找到目標元素.從DOM樹中,可以進行向上移動(祖先),向下移動(子孫)和水平移動(同胞). 祖先就是父,祖父,曾 ...

  9. linux sed的一些技巧

    sed -i '$a # This is a test' regular_express.txt 由於 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增『# This is a test ...

  10. jenkins--java配置

    进入jenkins然后-->系统配置-->Global Tool Configuration