JAVA基础

**

java基础

**
**

1.java概述

**
1.1.java是什么?
Java是一门面向对象的程序设计语言
1.2.面向对象是什么?它的基本特征是什么?
面向对象是一种编程思想。
面向对象的编程思想是从面向过程的编程思想升华。
面向过程的思想
例如:现在我要从电视塔去钟楼
面向过程的思想,我们就从电视塔开始记录下到钟楼之间,我们所经历的每一站。
电视塔–》吴家坟—》政法大学—》八里村…南门–》钟楼
我们沿途所记录的每一站,就形成从电视塔去钟楼的这个过程。
面向对象的思想
例如:现在我要从电视塔去钟楼
面向对象的思想,我们只需要电视塔和钟楼者两个对象就可以了。
面向对象的基本特征:
1.封装----将原本分散的东西聚集在一起,统一处理。
2.继承----与我们生活中所说的继承是用一同概念,孩子可以从父母哪里继承财产。
3.多态----同一类事物在不同的环境下,呈现出不同的状态。

1.3.java的三大版本以及它们的区别?
Java SE–java标准版[应用于桌面环境,桌面应用开发]
它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java 应用程序,能为Java EE提供开发基础。比如Java版的扫雷。
Java EE–java企业版[应用于基于Java的应用服务器,web程序]【网站】
可帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web 2.0 应用程序。
Java ME–java微型版[应用于移动、无线及有限资源的环境,移动终端程序开发]
用来开发移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)。现在使用的越少用了,Android会逐渐的取代J2ME的市场份额。
1.4.JDK是什么?由几部分组成?每一部分是什么?
JDK是java开发工具包下载安装和环境变量配置,JDK中包含java开发工具集和JRE,JRE是java运行时环境负责运行java程序,JRE之所以能运行java程序,是因为它包含了JVM,真正负责运行java程序的是JVM。JRE是由java程序开发库和JVM组成,因此上jre只能运行java程序,不能开发。如果只是想运行一下java程序,那么只安装一个jre就足够了,当然安装一个jdk也可以运行java程序。

1.5.JDK安装和环境变量配置?

  1. 下载
    下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
    历史版本:https://www.oracle.com/technetwork/java/javase/archive-139210.html
    2.安装
    3.配置环境变量
    如果没有配置环境变量,那么我们就无法在命令提示行中进行java程序的编译和运行。
    计算机—右键—属性----高级系统设置—环境变量
    新建----变量名:JAVA_HOME
    变量值:JDK安装目录所在文件夹的路径
    D:\java_jdk\jdk8.0
    选中Path—编辑----变量名:Path
    变量值:%JAVA_HOME%\bin;[放在Path变量值的最前面]
    新建—变量名:CLASSPATH
    变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
    测试jdk的安装和环境变量配置
    开始—cmd—打开命令提示行
    C:\Users\Administrator>java -version
    java version “1.8.0_162”
    Java™ SE Runtime Environment (build 1.8.0_162-b12)
    Java HotSpot™ 64-Bit Server VM (build 25.162-b12, mixed mode)

1.6.java程序的执行原理?

  1. 源文件(.java源代码)通过编译器编译成字节码文件class。
  2. 通过JVM中的解释器将字节码文件生成对应的可执行文件,运行。
  3. 将编译后的程序加载到方法区,存储类信息。
  4. 运行时,JVM创建线程来执行代码,在虚拟机栈和程序计数器分配独占的空间。根据方法区里的指令码,在虚拟机栈对线程进行操作,程序计数器保存线程代码执行到哪个位置。
    JAVA基础
    1.7.java语言的特点?
    1.面向对象
    Java语言是支持封装,继承,多态和面向对象的编程语言,这使得程序只有很少的耦合,能够更具凝聚力。每个模块都执行自己的功能,不会通过公共接口相互干扰。
    2.异常处理机制
    3.多线程【处理并发】
    进程是操作系统中分配的最小内存资源单元。每个进程可以同时拥有两个或多个线程,允许它们同时执行。并且它提供了Rannable接口及其实现类Thread,提供了许多控制线程操作的方法,以及线程同步控制。
    4.跨平台【操作系统】
    在Java语言中,最大的优点就是具有与平台无关,这样在使用的时候能够进行跨平台使用。大多数编程语言都不是跨平台的。所谓的平台,我们可以理解为操作系统,在其他的操作系统下不可以运行其他文件。但是Java语言不一样,Java程序不是直接运行在操作系统上面,而是在JVM中进行运行。
    5.自动垃圾回收机制

2.数据类型

2.1.什么是注释?注释的作用是什么?注释的分类以及具体的表现形式?
注释就是解释说明自己编写的java代码是什么意思,为了以后能够知道自己当时所写的java代码的功能或者含义,方便别人能够看懂自己的java程序
Java中注释的分类以及具体的表现形式:
1.单行注释 一次只能注释一行
// 注释内容,通常出现在被注释代码的上面或者后面
例如:
JAVA基础
2.多行注释 可以注释多行内容
/*
注释内容1
注释内容2
注释内容3
可以包含单行注释,不能包含多行注释的
/
通常出现在被注释代码的上面
例如:
JAVA基础
3.文档注释 实际上是一中多行注释,只是它可以通过javadoc命令转换成独立于程序以外的一个注释文件
/
*
注释内容1
注释内容2
注释内容3
可以包含单行注释,不能包含多行注释的
*/
通常出现在被注释代码的上面
通过javadoc命令转换成独立于程序以外的一个注释文件[通常不操作]
例如:
JAVA基础

2.2.标识符是什么?标识符的具体规则?
标识符是编写java代码时给java中的元素起名字的字符串。
【java中的元素–类,方法/函数,变量,数组…】
标识符规则:
1.可以用数字,字母,,$组成,数字不能开头。
Hello_world$110 [错误]100_Hello
2.不能有空格
3.区分大小写
Hello hello
4.不能是关键字
Java中各元素的基本命名规范:
类—符合标识符规则,类名的首字母要大写 例如:Hello HelloWorld
方法—符合标识符规则,方法的名称首字母小写,从第二个单词开始首字母大写
例如:get getName getMyName
变量—符合标识符规则,变量的名称所有字母小写,可以使用“
”分割
例如:name my_name my_name_number
2.3.什么是关键字?Java中常用的关键字?
关键字是java中为一些单词赋予了特殊含义,这些被赋予特殊含义的单词就是关键。标识符不能用关键字。
JAVA基础
2.4.什么是变量?变量的作用?变量的组成?
变量是在程序运行的时候随时可能发生变化的数据。
变量的作用:保存具体的数据值,限制了数据值在内存中的位置和大小。
变量的组成部分:
1.数据类型—决定内存空间
2.变量名称—自定义的,只要符合标识符的规则
3.初始值—默认值
4.作用域—有效范围
变量定义格式:
数据类型 变量名称; //定义变量
例如:int a;
变量的赋值:
变量名称 = 数据值;
例如:a = 100;
变量定义+变量赋值:
数据类型 变量名称 = 数据值;
例如:int a=100;
可以一次性声明/定义多个变量
例如:int a,b,c;
JAVA基础

2.5.Java中的基本数据类型有几种?如何表示,取值范围,注意事项?
Java中基本数据类型【原生数据类型】,分为4大类8种
JAVA基础
1.整数类
1.1byte – 字节型1字节8位2进制-128–127(-27)—(27-1)
默认值是0,超过取值范围就会出错。
1.2short – 短整型2字节16位2进制-2的15次方—2的15次方-1
默认值是0,超过取值范围就会出错。
1.3int – 整型4个字节 32位2进制-2的31次方----2的31次方-1
默认值是0,超过取值范围就会出错。
1.4 long – 长整型8个字节64位2进制-2的63次方----2的63次方-1
在赋值的时候需要添加一个“l””L”后缀,否则以int型对待
默认值是 0,超过取值范围就会出错。
如果保存比长整型更大的数据是采用
科学计数法【9.2233719446210545171150474578945e+42】。
2.浮点类–小数
2.1float – 单精度浮点型 4个字节 精度7–8位的有效数字
在赋值的时候需要“f”/”F”作为后缀,否则以双精度浮点型对待

2.2double–双精度浮点型8个字节 精度15–16位的有效数字
在赋值的时候可以有“d”/”d”作为后缀,也可以不同加,不带后缀的小数都是double 。
public class DataType{
public static void main(String args[]){
double d1=314.15926222d;
System.out.println(“d1==”+d1);
double d2=314.1592622299999999999d;
System.out.println(“d2==”+d2);
}
}
3.字符类–表示单个字符
char – 字符型 2个字节 【0–65535】 单个字符需要单引号包围
a—97----0101010010
b—98----10100101010
转义字符—标识特殊符号
JAVA基础
4.布尔类
boolean – 布尔 1个字节 true/false
boolean b1=true;
System.out.println(" b1==="+ b1);

2.6.基本数据类型之间的转换?注意事项?
一、 基本数据类型的分类:boolean为布尔类型;byte,short,int,long为整型;float,double为实型;char为字符型
2.boolean类型不可以转换为其他的数据类型
3.表示范围从小到大:byte->short->char=int–>long–>float–>double
4.基本数据类型有两种转换方式:自动类型转换、强制类型转换,表示范围小的数据类型可以自动转换为表示范围大的数据类型,表示范围大转换为表示范围小的数据类型才需要强制类型转换
2.7.什么是数组?如何定义?如何创建?如何赋值?如何取值?有那些属性?
1.什么是数组?
同一数据类型的一组数据按照顺序排列的复合数据类型—数组。
1.同一数据类型 【进入数组的数据的类型必须相同】
2.按照顺序排列
3.复合数据类型
二、java中如何定义一个数组
格式:
1. 数据类型 数组名称[];
2.数据类型 []数组名称;
例如:JAVA基础
3.创建数据 【为数组开辟保存数据的内存空间】
格式: 数组名称 = new 数据类型[空间大小];
例如:JAVA基础
可以将定义数组与创建数组合并成一句话表示:
1.数据类型 数组名称[] = new 数据类型[空间大小];
2.数据类型 []数组名称 = new 数据类型[空间大小];
例如:JAVA基础
4.数组赋值
(1)逐个赋值 【需要数组下标,从0开始】
格式:数组名称[下标] = 数据值/变量;
超过数组空间大小以后会出错“java.lang.ArrayIndexOutOfBoundsException”
例如:JAVA基础
(2)直接赋值【就是在创建数组的时候赋值】
JAVA基础
5.从数组中取值
格式: 数组名称[下标]
System.out.println(“取值===”+intarray[3]);
6.数组的length属性
length属性 – 得到数组空间大小
例如:JAVA基础
例如:JAVA基础
7.遍历数组【循环语句】
总结:
1.”[]”数组的标志
2.当数组名称后面有一个“[]”,这个就是一维数组,当数组名称后面有两个“[]”, 这个就是二维数组,超过两个“[]”,统一叫多维数组。
以上都是一维数组内容。下面简单介绍二维数组构造。
定义二维数组 : 数据类型 数组名称[][]/数据类型 [][]数组名称;
创建二维数组 : 数组名称=new 数据类型[空间大小][每一个空间中的元素个数]
二维数组可以用来保存表格数据;
JAVA基础
JAVA基础

2.8.认识Arrays类【数组的帮助类】?
Arrays 类的定义:
Arrays类位于java.util 包中,主要包含了操纵数组的各种方法
Arrays 类的常用方法:
下面介绍一些常用的Arrays方法
Arrays类的sort()方法:对数组进行升序排序
Arrays.sort(数组名);
JAVA基础
String toString()方法:将一个数组array转换成一个字符串
JAVA基础
void fill()方法:把数组array所有元素都赋值为指定数
JAVA基础
copyOf()方法:把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
JAVA基础
int binarySearch()方法:查询元素值在数组中的下标(要求数组中元素已经按升序排列)
JAVA基础
boolean equals()方法:比较两个数组是否相等
JAVA基础
2.9.基本数据类型与复合数据类型的区别?
(1)基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内存中的栈上的,数据本身的值就是存储在栈空间里面,Java语言里面八种数据类型是这种存储模型;
(2)引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java堆和栈来进行这种类型的数据存储,简单地讲,“引用”(存储对象在内存堆上的地址)是存储在有序的栈上的,而对象本身的值存储在堆上的;
不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于引用类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上。
2.10.Scanner类的用法?
Scanner类简介
Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。
Scanner类的常用方法1
JAVA基础
其实上图的意思就是,比如:nextlnt():只读取int值,就是只能读取整数类型的数据,如果输入了非整型的数据(浮点型字符串等)就会报错。
nextFloat()、nextDouble()这些也是以此类推,只能读取符合该类型的数据。
此处重点讲一下next()和nextLine()的区别
next():只读取输入直到空格。它不能读两个由空格或符号隔开的单词。此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行)
nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。
代码演示:
JAVA基础
运行结果:
JAVA基础
Scanner类的常用方法2
JAVA基础
代码演示:
JAVA基础
运行结果如下:
JAVA基础

3.表达式和语句

3.1常见的运算符和表达式
1.赋值运算符 【=】
2.算术运算符 【+ - * / %{求余数} ++ – 】
例如:
JAVA基础
例如:
JAVA基础
3.关系运算符【比较运算符】【> < >= <= == !=】运算结果是一个布尔值
例如:
JAVA基础
4.逻辑运算符
1 逻辑运算符 【|| && !】
||【逻辑或】–[短路或]
格式:【表达式A || 表达式B】 ,在某种情况下只判断表达式A,而不用判断表达式B,就能够得到这个逻辑运算的结果【短路】
||【逻辑或】的真值表
Op1 || Op2
True || true true
True || false true
Fales || true true
False || false false
当||【逻辑或】的左边表达式是true的时候,||【逻辑或】的右边表达式是不用计算。
&&【逻辑与】–[短路与]
格式:【表达式A && 表达式B】,
在某种情况下只判断表达式A,而不用判断表达式B,就能够得到这个逻辑运算的结果【短路】
&&【逻辑与】的真值表
Op1 && Op2
True && true true
True && false false
Fales && true false
False && false false
当&&【逻辑与】的左边表达式是false的时候,&&【逻辑或】的右边表达式是不用计算。
例如:JAVA基础
![逻辑非] 求反 !true== false !false==true
3.2 常见语句
1.顺序结构 【java代码自上而下一行一行执行】
2.选择结构
1.if(){}
例如:
JAVA基础
2.if(){}else{}
例如:
JAVA基础
1.if(){}else if(){}else if(){}…
例如:
JAVA基础
JAVA基础
4.if语句的嵌套
例如:
JAVA基础
5.switch语句
格式:switch(表达式){
case 常量1: java代码;[break;]
case 常量2: java代码;[break;]
case 常量3: java代码;[break;]
case 常量4: java代码;[break;]
default :java代码 ;[break;]
}
switch语句的表达式的结果的数据类型可以是 byte short char int,枚举类型,jdk7.0以后的可以有String【字符串类型】。
switch语句中的break语句的有无会直接影响执行结果。
例如:
JAVA基础
循环
1.for循环
格式:
for(初始条件;判断条件;循环增量/减量){
需要被循环执行的java代码
}
JAVA基础
增强的for循环
For(数组的数据类型 变量名称:被遍历的数据集合【数组/java集合】){
使用变量得到遍历出来的结果
}
例如:
JAVA基础
2.while循环
格式:while(判断条件){
需要被循环执行的java代码
}
例如:
JAVA基础
JAVA基础
3.do{}while循环
格式:
do{
需要被循环执行的java代码
}while(判断条件);
JAVA基础
例如:
JAVA基础
break语句
1.break 含义 打断 【跳出switch,跳出循环】
2.双层循环中如果出现在内层循环结构中,只中断内层循环,如果出现在外层,那么就中断外层循环。
例如:
JAVA基础
continue语句
continue 继续 出现在循环 【结束本次,进入下次循环】
例如:
JAVA基础
return
return 语句的作用是从当前函数退出,并从那个函数返回一个值。
用 return 语句来终止一个函数的执行,并返回 expression 的值。如果 expression 被省略, 或在函数内没有 return 语句被执行,则把值 undefined 赋给调用当前函数的表达式。

4.类和对象

4.1.类是什么?
1.性质或特征相同或相似的事物综合体就是类。【人类,汽车类…动物类】
2.类–类型–java数据类型—java中的复合数据类型–自己定义的复合数据类型
通过java语言描述一组性质或特征相同或相似事物的自己定义的复合数据类型。
2.1 基本数据类型 【byte,short,char,int long,float,double,boolean】
2.2 复合数据类型
4.2.类是如何编写的?
通过class关键字来创建一个类。
格式:访问限制修饰符 class 类名{
}
创建一个学生类
public class Student{
}
class Student{
}
1.访问限制修饰符—public 缺省的
public----[公共的] 所有包都可以访问
缺省的–[友好的] 同一个包中可以访问。
2.class—创建类的关键字【类的标志】
3.类名–合法的标识符【每一个的单词的首字母大写】
4.{}----类体

4.3类中可以编写什么?
我们描述一组事物通常是通过2个途径来描述:
1.基本特征【属性】--------变量
2.基本行为【功能】--------方法
例如:汽车
颜色 大小 速度 品牌------基本属性
前进 后退 转弯----------------基本行为
类中可以编写变量和方法。
用变量来描述事物的基本特征【属性】,用方法来描述事物的基本行为【功能】。
4.4 类中的变量的分类以及特征?成员变量的隐藏?静态成员变量与实例变量的区别?
1.变量书写在类体中。
变量–保存数据
1.数据类型【基本数据类型/复合数据类型】
2.变量名称【合法的修饰符,全字母小写】
3.初始值
4.作用域【有效范围】
2.变量的分类
1.成员变量【全局变量】—类中除过方法以外的地方【在类体,但没有在方法中】。
2.局部变量—类中的方法里面和方法的参数。
例如:
JAVA基础
成员变量与局部变量的区别?
成员变量【全局变量】的特征
1.类中除过方法以外的地方。
2.可以没有初始值,系统会自动赋予这个全局变量一个默认的初始值。
3.需要访问限制修饰符
4.可以在本类中的任何一个方法中被使用,且不受访问限制修饰符的影响。
局部变量的特征
1.类中的方法里面和方法的参数。
2.局部变量一定要有初始值。
3.不能有访问限制修饰符
4.只能在定义该局部变量的方法中使用,超出本方法就错误
例如:
JAVA基础
3.成员变量的隐藏
类中的某一个成员变量的名称与某一个方法中的局部变量的名称相同,那么类中的成员变量的数据值被局部变量覆盖隐藏。
例如:
JAVA基础
static关键字修饰变量【成员变量】
成员变量【全局变量】— 类中除过方法以外的地方。
根据是否有static关键字修饰,将成员变量划分为2类:
1.有static关键字修饰的成员变量-----静态成员变量【类变量】;
2.没有static关键字修饰的成员变量—实例成员变量【实例变量】;
例如:
JAVA基础
JAVA基础
【类变量】与【实例变量】的区别?
1.语法定义上:类变量有static,实例变量没有static
2.调用方式上:类变量可以使用对象调用,也可以使用类名调用, 实例变量只能通过对象调用
3.内存配置上:类变量是在程序运行之前分配内存空间,实例变量是在程序运行时分配内存空间
4.5 类中的方法以及表现形式和特征?方法的重载?
用来描述具有共同性质的一组事物的基本行为。
普通方法【实例方法】基本格式:
访问限制修饰符 方法的返回值类型 方法的名称(方法参数列表){
​ 需要实现的基本行为
}
访问限制修饰符—public 缺省的
方法的返回值类型—方法执行成功以后的结果的数据类型
​ --有结果,方法的返回值类型就是结果类型【基本类型,复合数据类型】,方法体的最后一句话是return xxx;语句
–没有结果,使用void表示
方法的名称----合法的标识符【首字母小写,从第二个单词开始首字母大写】
​ test testHello testHelloWorld
方法参数列表—接收方法以外的数据进入本方法【请人帮忙】
​ —可以一个参数都没有()。
​ —可以有一个/多个(变量)/(int num1,double test1,String test)
{}—方法体
JAVA基础
静态方法【类方法】基本格式:
访问限制修饰符 static 方法的返回值类型 方法的名称(方法参数列表){
​ 需要实现的基本行为
}
JAVA基础
构造方法:
没有方法返回值类型部分
法的名称与类名称相同
访问限制修饰符 类名称(方法参数列表){
​ 需要实现的基本行为
}
注意:
1.用来创建对象的方法。
2.当我们创建好一个类以后,默认就有一个无参数的构造方法存在,只是没有显示出来。
3.当类中出现有参数的构造方法时,我们最好将无参数的构造方法,手动显示出来,如 果没有手动显示出无参数的构造方法,那么有参数的构造方法会将原本默认存在的无参 数的构造方法覆盖。
JAVA基础
方法重载----在同一个类中,方法名称相同,参数不同这种现象就是方法重载。
​ 参数不同
1.有或无
2.数量不同
3.类型不同
注意:方法重载与方法的返回值类型,没有关系。
JAVA基础
4.6 同一个类中方法与变量的调用关系?方法与方法的调用关系?
同一个类中方法与变量的调用关系
1.在同一个类中只能方法调用变量,不能变量调用方法
同一个类中方法调用变量
JAVA基础
同一个类中方法调用方法
JAVA基础
总结:
静态方法【类方法】中你绝对不能出现this
静态方法【类方法】中不能调用实例变量和实例方法
构造方法可以调用实例变量/实例方法,默认是this.实例变量/this.实例方法,this.可以省略。
构造方法可以调用类变量/类方法,默认是类名.类变量/类名.类方法,类名.可以省略,也可以是this.类变量/this.类方法,this.可以省略。
构造方法可以调用其他的构造方法,new + 其他的构造方法;
实例方法可以调用实例变量/实例方法,默认是this.实例变量/this.实例方法,this.可以省略。
实例方法可以调用类变量/类方法,默认是类名.类变量/类名.类方法,类名.可以省略,也可以是this.类变量/this.类方法,this.可以省略。
实例方法可以调用构造方法,new + 其他的构造方法;
类方法可以调用类变量/类方法,默认是类名.类变量/类名.类方法,类名.可以省略。
类方法可以调用构造方法,new + 其他的构造方法
4.7 对象是什么?对象如何创建?创建好的对象的作用?
我们可以认为类它就是一个模具/图纸,而现在的对象它就是通过这个类创建出来的实体/实例。
类—抽象的【不能用的,给你看的】— 设计图纸
对象–具体【能用的,给你用的】— 制作出来的实际的实体
对象就是通过类创建出来的实体/实例。
因此上我们把创建对象的过程就叫实例化。【创建对象】
类是创建对象的模具/图纸。
对象是通过类制作出来的实际的实体。
没有类就没有对象。
没有对象类就没有意义。
如何创建对象?
1.对象就是通过类创建出来的实体
2.通过 new + 构造方法 创建的。
3.定义格式:类名 对象名称;
4.创建格式:对象名称=new 构造方法;
5.定义+创建格式: 类名 对象名称=new 构造方法;
public class Student{
}
//定义格式:类名 对象名称;
Student stu1; ==> int num1;
//创建格式:对象名称=new 构造方法;
stu1=new Student(); => num1=100;
//定义+创建格式: 类名 对象名称=new 构造方法;
Student stu2=new Student();
=>int num1=100;
一、对象的作用
(1)可以通过对象来调用定义在类中的变量【实例变量/类变量】,和方法【实例方法/类方法】,忽略访问限制修饰符的影响。
(2)Java程序=对象+消息【类中的变量,方法】
(3)其他类中实例变量/实例方法只能对象调用。
(4)其他类中类变量/类方法,可以对象调用,也可以类名调用。
JAVA基础
JAVA基础
4.8 对象的内存分配原理?
对象是通过类创建的,而类是一种复合数据类型,那么对象的内存分配与复合数据类型的内存分配是一致。因此对象的内存分配会在内存的堆区和栈区都有分配。
JAVA基础
JAVA基础
4.9 对象的使用?
–以实例方法为例,解释对象调用方法的关系
–没有参数,没有返回值
–没有参数,有返回值
–有参数,没有返回值
–有参数,有返回值
JAVA基础
4.10 类与对象的关系?
java类和对象的关系是:对象是类实例化出来的,对象中含有du类的属性,类是对zhi象的抽象。

类和对象的区别
  1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属 性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
  2,对象是类的一个具体。它是一个实实在在存在的东西。
  3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。