java类的回顾
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类的回顾的更多相关文章
- java:类集回顾
1.类集设置的主要目的:动态的对象数组 2.类集中有以下几个接口: Collection:是存放单值的最大父接口 |- List接口:里面的内容是允许重复的 |- ArrayList, Vector, ...
- java基础知识回顾之---java String final类普通方法
辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /* * 按照面向对象的思想对字符串进行功能分类. * ...
- Java类的加载、链接和初始化
一.Java的类加载机制回顾与总结: 我们知道一个Java类要想运行,必须由jvm将其装载到内存中才能运行,装载的目的就是把Java字节代码转换成JVM中的java.lang.Class类的对象.这样 ...
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
- JAVA类和对象创建
面向对象 学习目标: 理解面向对象的编程思想 理解类与对象的关系 如何创建类与对象 方法重载 一:什么是面向对象编程(OOP) 面向对象编程(Object Oriented Programming,O ...
- Java类的定义与类的实例化
目录 Java类的定义与类的实例化 类的定义 定义一个简单的类 定义一个成员变量 定义一个方法 定义一个构造器 类的实例化 创建对象及使用对象: 创建对象的过程在内存中的表现 Java类的定义与类的实 ...
- Java类集框架详细汇总-底层分析
前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...
- 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...
- jvm系列(一):java类的加载机制
java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...
随机推荐
- PHP自动加载上——spl_autoload_register
spl_autoload_register函数是实现自动加载未定义类功能的的重要方法,所谓的自动加载意思就是 我们的new 一个类的时候必须先include或者require的类文件,如果没有incl ...
- mysql数据库优化大全
转载:https://blog.csdn.net/weixin_38112233/article/details/79054661 数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式 ...
- 解决从pip上下载的最新flask版本不能运行flaskr和最新特性的问题
由于在测试flask的单元测试.所以准备弄个环境,查询官方文档发现flask源码里面有一个example文件夹里面有个flaskr应用 可供测试 看了一下readme文档,大致是这样 / Flaskr ...
- Apache虚拟主机
基本概述 虚拟Web主机 在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机 httpd支持的虚拟主机类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 ...
- webapi返回泛型给easyui
由于之前遇到的easyui调用webapi的问题. 参见 :http://blog.csdn.net/hanjun0612/article/details/51144991 所以就考虑,封装一个泛型用 ...
- MT【241】红蓝两色染色
用红蓝两色给$3*3$的格子染色,要求每行每列每种颜色都有,则不同的染色方法_____ 分析:按红色格子数分类,1)红色3或者6个有6种.2)红色4或者5个有45种.故一共有2*(6+45)=102种 ...
- 【POJ 2823】Sliding Window(单调队列/堆)
BUPT2017 wintertraining(16) #5 D POJ - 2823 题意 给定n,k,求滑窗[i,i+k-1]在(1<=i<=n)的最大值最小值. 题解 单调队列或堆. ...
- 01 自学Aruba之功率单位和相对单位
点击返回:自学Aruba之路 01 自学Aruba之功率单位和相对单位 功率单位是用来测量传输振幅和接受振幅的大小,功率单位测量的是绝对功率 相对单位是用来计算增加电缆或天线后的损耗和增益的大小,相对 ...
- [luogu4868]Preprefix sum
https://www.luogu.org/problemnew/show/P4868 题目大意 单点修改,查询前缀前缀和. 分析 遇到了单点修改,前缀和,很明显是要树状数组维护解决问题. 请看以下我 ...
- 用ip代替机器名访问sharepoint 站点
1. aam 里加入一个ip的internet 2. iis里不用加上ip,但不要有host name 出现的问题: 1. 当打开站点里会出现这个错误 file not found 2. 当加授予 ...