java 基础--理论知识
变量分:
局部变量
全局变量
-----------------------------------------------------
变量三大特性【标识符,初始值,作用域】
定义变量:
语法:[访问修饰符] 数据类型 变量名
例如:public int age;
如何为变量赋值和取值?
age=10;
System.out.println(age);
----------------------------------------------------------
常量:在程序运行期间不会改变
关键字:final
语法:[访问修饰符] [static] final 数据类型 常量名
例如:final double PI=3.14;
注意事项:
1:使用final关键字定义常量
2:常量必须有值
3:建议常量名全部大写
-----------------------------------------------------
定义常量时,通常会使用static关键字修饰
public static final int WIDTH=5;
public final static int WIDTH=5;
-----------------------------------------------------
Java数据类型分类:数值类型,非数值类型
还可以分为原始类型和对象类型
-----------------------------------------------------
原始类型(基本类型):
byte, short, int, long, float, double, char, boolean
-------------------------------------------------------------------
对象类型(引用类型)
String, 类, 接口, 数组, 泛型, 枚举, 集合
---------------------------------------------------
数值类型
整数:
byte:(-128---127)32b
short:(-32768----32767)
int:-2的31次方---2的31次方-1[32]
long:-2的63次方---2的63次方-1[64]
非整数:
float:-2的31次方---2的31次方-1[32]
float:标识符为f,例如:8.5f
最多保留6位小数,从第7开始四舍五入
------------------------------------------------
double:-2的63次方---2的63次方-1[64]
标识符为:d,小数默认类型为double
最多保留16位小数,从第17开始四舍五入
非数值类型
char
String
boolean
类,接口.......
---------------------------------
package:包
========================================================================》》
数据类型转换
---------------------------------------
自动类型提升:(小到大)
1:byte和byte类型构成表达式时,自动类型提升到int
2:在一个表达式里面,如果出现了int,float,double
或者其他数值类型,自动提升到该表达式最高类型
byte+byte>int
int+int>int
float+float>float
double-double>double
int+float>float
int+double>double
int+float+double>double
int+long+double>double
--------------------------------
强制类型转换(大到小)
int>byte
float>int
double>float>int.....
long>int>short
强制类型转换可能导致丢失数据
语法:
(目标类型)原类型
前提:数值类型
--------------------------------
int->Integer
char->Charactor
float->Float
double->Double
short->Short
long->Long
boolean->Boolean
byte->Byte
---------------------------------
Java运算符
赋值运算符:从右向左
=,+=,-=,/=,%=
算术运算符
+,-,*,/,%,++,--
逻辑运算符
&&-->A and B->A,B同时为真则为真,如果A已经false,B不执行
||-->A or B->A,B一边为真则为真,如果A已经true,B不执行
!-->not A->如果A是真,则转成假
========================================================================》》
1:数组的概念
在内存中连续存储多个相同类型的线性数据结构
特点:
A:连续存储
B:存储的数据类型相同
C:通过下标访问每一个数组元素,从0开始
----------------------------------------------------
2:为什么要使用数组?
基本的变量只能存储单个数据,如果要存储
多个数据,需要定义多个变量,不便于操作
与管理
-----------------------------------------------------
3:如何定义一维数组?
基本方式:
数据类型[] 数组名;
数组名=new 数据类型[长度];
其他方式
A:数据类型[] 数组名=new 数据类型[长度];
B:数据类型[] 数组名={值1,值1,值1....};
C:数据类型[] 数组名=new 数据类型[]{值1,值2,.....};
其中B,C都是在声明数组的同时进行了初始化操作
------------------------------------------------------------
如何使用数组?
赋值:数组名[下标]=值;
取值:数组名[下标]
注意:数组下标从0开始,最大下标为数组length-1
例如:int[] ages={3,4,5,6,7};
ages[0]-->3;//0最小下标
ages[4]-->7;//4最大下标
获取数据最大下标可以使用属性length-1
System.out.println("ages数组最大下标:"+(ages.length-1));
========================================================================》》
1:对象的概念
现实中具有特定属性和行为的所有实体
都是对象
一切皆对象
要研究一个对象,从对象拥有的属性和方法开始
实体---->对象
特征---->属性
行为---->方法
------------------------------------------
2.类的概念
具有相同属性共同行为的一组对象的集合
-----------------------------------------
类是从一系列对象中抽取共同点而产生的
一种逻辑上的概念
-----------------------------------------
类和对象之间的关系
1:类是对象的模板,集合【定义了所有对象的共同特征和行为】
2:对象是类的一个具体实现
--------------------------------------
如何创建对象?
类 对象名=new 类();
---------------------------------
Object类--->所有类的根类
toString();
---------------------------------
注意:
1:类的成员属性和方法必须由对象来使用
2:类的成员属性可以被类的成员方法直接调用
---------------------------------
类里面所有非static修饰的属性和方法
都是成员属性和成员方法
----------------------------------
在同一个类中,静态属性和静态方法在任何
地方可以直接使用,不需要构建对象
========================================================================》》
1:封装的概念
将事物包装起来,隐藏事物的实现细节即为封装
2:为何需要封装?
A:封装将事物统一收集,便于事物的管理
B:封装将事物细节进行隐藏,限制了事物的访问
3:有哪些地方体现了封装?
电脑主机箱,教室,包,类
-------------------------------------------------------
在Java中,针对每一种基本数据类型,都提供了
一个封装类来进行对这些基本类型的管理和操作
int-->装箱-->Integer-->拆箱-->int
char-->装箱-->Charactor
float-->Float
double-->Double
byte-->Byte
boolean-->Boolean
short-->Short
long-->Long
-----------------------------------
定义类的属性时,如果直接暴露所有属性是不合理
也不安全的,为此,我们需要对属性进行封装
隐藏具体细节,即保证了合理性,也利于程序安全
--------------------------------------
如何将属性封装起来?
将类中属性私有化,提供公有的方法访问这些私有的属性
[特点:不能直接访问属性]
私有化:只能自己独自享用
公共方法:谁都可以用
-----
Java中提供了一组访问修饰符来限制事物的访问
public 公共的 能被所有地方访问
private 私有的 只能被同一个类访问
protected 受保护的 同一个包可以访问,不同包的子类可以访问
[default] 默认的 同一个包可以访问
--------------------------
Java三层范围
A:同一个类
B:同一个包
C:不同包
========================================================================》》
一:什么样的方法是构造方法?
1:方法名与类名相同
2:没有返回类型[void也是一种返回类型]
二:构造方法有什么作用?
初始化类的成员变量
【当实例化一个对象时,为这个对象的属性赋于初始值】
三:如何调用构造方法?
使用关键字new
new Student();代表调用不带参数名称为Student的构造方法
new Student("abc",23);代表调用带两个参数名称为Student的构造方法
在一个类中,可以出现多个名称相同,但是参数不同
的构造方法。
四:this关键字
this代表当前对象的一个引用
this关键字不能在静态(static)方法里面使用
---------------------------------------------------
在Java中,同一个类中不允许出现相同的方法
什么样的方法是相同方法?
1:方法名相同,2:参数相同[参数的个数,类型,顺序]
========================================================================》》
一:什么叫方法的重载?
在一个类中出现多个方法名相同参数不同的方法———
我们称之为方法重载 (普通方法和构造方法都可以重载)
二:方法的重载有什么好处呢?
1.提高程序的灵活度
2.有利于后期项目的维护与管理
3.符合软件设计中的开闭原则
三:什么样的几个方法我们称之为方法的重载?
1.同一个类
2.方法名相同
3.参数不同(个数,类型,顺序)
========================================================================》》
1:继承的概念
父类的特征和属性传递给子类,我们称之为子类
继承父类。
2:什么样的关系才能满足继承?
A:两个类之间满足is a的关系
B:两个类之间存在层次关系
3:使用继承有什么好处?
write once,only once:写一次,只写一次
提高了代码的复用性
4:Java中使用什么关键字实现两个类之间的继承?
extends
-------------------------------------------------
* 1:父类 对象名=new 父类();自己能调用自己的方法和属性
* 2:子类 对象名=new 子类();可以调用自己特有方法和属性,也能调用继承到的方法和属性, 如果子类和父类出现相同方法,采用就近原则调用子类里面的方法
* 3:父类 对象名=new 子类();
* 调用属性和方法时,先看父类有没有,如果没有,直接出错
* 如果父类有,则看子类有没有对这个方法进行改变,如果
* 有,则使用子类的,如果没有,则使用父类的
--------------------------------------------------
方法的重载:overload(多个并存)
方法的重写:override(覆盖)
---------------------------------
什么叫方法的重写?
【在子类中,子类对父类中继承到的方法的改变称之为方法的重写】
方法重写的标准
1:父类与子类之间
2.重写的方法要求(方法名、参数、返回值类型)和被重写方法一致
3.重写的方法要求访问修饰符要(大于或等于)被重写的方法
例如:父类中有一个sayHello方法
void sayHello(String){
}
子类重写父类中sayHello方法应该有如下形式
A:
void sayHello(String){
}
B:
public void sayHello(String){
}
--------------------------------------------------
this:当前对象的引用
super:当前对象的父类对象引用
当在子类中需要调用父类的方法和属性时,可以用
super关键字调用
----------------------------------------------------
两个类一旦建立继承关系,当实例化子类时
默认先调用父类中一个不带参数的构造方法
实例化一个父类对象,然后再实例化子类对象
------------------------------
super()方法用来调用父类的构造方法
例如:super()调用父类不带参数的构造方法
super("abc")调用父类带一个字符串类型参数的方法
super("bac",23)调用父类带两个参数的构造方法
super()必须是在子类构造方法(第一行)调用
java 基础--理论知识的更多相关文章
- Java基础语法知识你真的都会吗?
第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...
- Java基础入门知识
Java编程入门知识 知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...
- Java 基础部分知识复习
面向对象的特征: 继承.封装和多态 封装 : 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象去操作.对不可信的信息进行隐藏. 继承: 它可以使用现有类的功能,并在无需重新编 ...
- Java基础小知识(一)
序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...
- java基础小知识
1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9) ,星期(七进制(0-6)) ,时间(十二进制(0-11 ...
- java基础语法知识
1.用消息框显示加法计算结果 package plusdialog; import javax.swing.JOptionPane; // import class JOptionPane publ ...
- Java基础小知识1——分别使用字节流和字符流复制文件
在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...
- Java基础小知识笔记
1. Integer转进制的一个类2. toBinaryString,toOctalString,toHexString.(转为二进制,八进制,十六进制的方法)3. 如果·数据的大小没有超过byte/ ...
- Java基础重点知识之欣欣向然
题目: 第一题:二重循环: public class Text01 { //完成歌曲排序的效果 public static void main(String[] args) { String[] zi ...
随机推荐
- 44个Java代码性能优化总结
https://blog.csdn.net/xiang__liu/article/details/79321639 ---稍后有时间整理
- gentoo emerge L10N
gentoo 中安装软件的时候 emerge 提示 USE 中有 语言包可选安装,使用 L10N 来设置,设置方法是在USE中使用 l10n_,比如说 l10n_zh_CN 来安装中文支持包.
- profile default
SAPDBHOST = 10.199.0.26 j2ee/dbtype = hdb j2ee/dbname = ISD j2ee/dbhost = 10.199.0.26 dbs/hdb/dbname ...
- This iPhone 6s is running iOS 11.3.1 (15E302), which may not be supported by this version of Xcode.
This iPhone 6s is running iOS 11.3.1 (15E302), which may not be supported by this version of Xcode.
- c#随机生成英文名
private static string GenerateSurname() { string name = string.Empty; string[] currentConson ...
- springBoot框架的搭建
1新建一个项目: 2.注意选择JDK1.8,和选择spring initializr加载springBoot相关jar包: 3.下一步next: 4.下一步next,选择Web和MyBatis然后ne ...
- 初学Python的奇葩用法
ming_piao= 11ming_yeji= 586319ming_age= 34ming_gongling= 10ming_yanjiang= 81 qiang_piao= 7qiang_yeji ...
- js----作用域链
作用域链是javascript的一个难点,要了解它就要了解作用域.变量.执行环境.生命周期等. 下面是找的资料加总结,加深理解. 作用域 变量的作用域可分为 A:全局作用域----最外层函数定义的变量 ...
- 2018面向对象程序设计(Java)第16周学习指导及要求
2018面向对象程序设计(Java)第16周学习指导及要求(2018.12.13-2018.12.16) 学习目标 (1) 掌握线程概念: (2) 掌握线程创建的两种技术: (3) 理解和掌握线程 ...
- 【POJ2778】DNA Sequence 【AC自动机,dp,矩阵快速幂】
题意 题目给出m(m<=10)个仅仅由A,T,C,G组成的单词(单词长度不超过10),然后给出一个整数n(n<=2000000000),问你用这四个字母组成一个长度为n的长文本,有多少种组 ...