变量分:
局部变量
全局变量
-----------------------------------------------------
变量三大特性【标识符,初始值,作用域】
定义变量:
语法:[访问修饰符] 数据类型 变量名
例如: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:bytebyte类型构成表达式时,自动类型提升到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 基础--理论知识的更多相关文章

  1. Java基础语法知识你真的都会吗?

    第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...

  2. Java基础入门知识

    Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...

  3. Java 基础部分知识复习

    面向对象的特征: 继承.封装和多态 封装 : 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象去操作.对不可信的信息进行隐藏. 继承: 它可以使用现有类的功能,并在无需重新编 ...

  4. Java基础小知识(一)

     序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...

  5. java基础小知识

    1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9)  ,星期(七进制(0-6)) ,时间(十二进制(0-11 ...

  6. java基础语法知识

    1.用消息框显示加法计算结果 package plusdialog; import javax.swing.JOptionPane;  // import class JOptionPane publ ...

  7. Java基础小知识1——分别使用字节流和字符流复制文件

    在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...

  8. Java基础小知识笔记

    1. Integer转进制的一个类2. toBinaryString,toOctalString,toHexString.(转为二进制,八进制,十六进制的方法)3. 如果·数据的大小没有超过byte/ ...

  9. Java基础重点知识之欣欣向然

    题目: 第一题:二重循环: public class Text01 { //完成歌曲排序的效果 public static void main(String[] args) { String[] zi ...

随机推荐

  1. sqlite--一秒20万数据

    参考博文:https://blog.csdn.net/weixin_35261786/article/details/78222602 #include <iostream> #inclu ...

  2. PHP 调试打印输出变量

    var_dump ($row); echo "hello"; echo "\n"; print_r ($arr); php 数组 对象 $arr = json_ ...

  3. 工程C++基础

    大家好,我是老A.今天我们要学习的是工程C++,这是一个不可描述的东西.我主要讲的是template. template的用处是装逼,所以很重要. C++配备了函数模板和类模板.函数模板就是我们平时的 ...

  4. Java CompletableFuture:allOf等待所有异步线程任务结束

    private void method() throws ExecutionException, InterruptedException { CompletableFuture<String& ...

  5. 史上最坑 idea 更改代码不生效

    原来, 如果本地多次调整过系统时间,那么gradle 的缓存 会缓存 你的 上次编译时间再未来,那么你再怎么编译,都很难生效,即使删除了生成的字节码目录. 然后invalidate caches/re ...

  6. TypeError: while_loop() got an unexpected keyword argument 'maximum_iterations'

    错误: TypeError: while_loop() got an unexpected keyword argument 'maximum_iterations' 参照https://blog.c ...

  7. 【POJ2778】DNA Sequence 【AC自动机,dp,矩阵快速幂】

    题意 题目给出m(m<=10)个仅仅由A,T,C,G组成的单词(单词长度不超过10),然后给出一个整数n(n<=2000000000),问你用这四个字母组成一个长度为n的长文本,有多少种组 ...

  8. Laravel5 (cli)命令行执行脚本及定时任务

    Artisan是Laravel自带的命令行接口名称,它提供了很多有用的命令想要查看所有可用的Artisan命令,可使用list命令查看: 1 php artisan list 每个命令都可以用help ...

  9. MYSQL 时间类型

    常见四种:DATE, TIME, DATETIME, TIMESTAMP DATE: 只表示年月日,YYYY-MM-DD TIME: 只表示时分秒,HH-mm-SS DATETIME: DATE和TI ...

  10. protobuf shutdownprotobuflibrary的时候crash,释放的指针出错

    往往是多个子项目中有多次链接使用. 解决方法: 1. 使用静态库. 2. issure中有说2.6.1还未允许多次释放,建议使用3.4.x版本. 参考: https://github.com/prot ...