javaSE 总结

一、认识环境

基础概念
1、JDK:Java开发工具包,开发Java代码必备
2、JRE:Java运行时环境,运行Java必备
3、JVM:Java虚拟机
4、集成环境IDEA

二、变量和类型

1、什么是变量:表示一些可变的概念(运行时可以改变),创建一个变量就会分配相应内存空间

2、什么是常量:有字面值常量 int类型 long类型 double类型 float类型 Boolean类型 String类型 char类型

3、类型

(1)内置类型(四类八种)
整形:byte、short、int、long,浮点数:double、float,字符:char,布尔:boolean

(2)引用类型
引用相当于低配指针
字符串:String,数组,类

(3)类型之间的转换
类型转换的概念
隐式类型转换:把一个表示范围小的类型赋给表示范围大的类型,例如:把int类型赋给long类型

强制类型转换:大范围赋给小范围

类型提升

4、变量的作用域

局部变量作用域在当前代码块
成员变量作用域受访问权限控制

private:类内部能访问,类外部不能访问
default:类内部能访问,同一个包中的类也能访问,其他类不能访问
Protected:类内部能访问,子类和同一个包中的类可以访问,其他类不能访问
public:类内部和类的调用者都能访问

变量的命名规范
硬性要求:变量必须由数字、字母、下划线组成
软性要求:见名知意、驼峰命名法、最好使用英文单词名词词性

三、运算符

1、算术运算符

      • / %
        2、关系运算符
        < <= > >= == != 它们的返回值类型都是Boolean类型
        3、逻辑运算符
        &&(左侧为假即为假) ||(左侧为真即为真) !支持短路求值

& | 没有短路求值 操作数是Boolean类型

4、按位运算符
& | ~(取反)^(异或) 操作数是整数类型

5、移位运算
<< 左移一位相当于*2

右移一位相当于/2 最左侧补符号位

逻辑右移,最左侧无脑补0

四、数组

数组:批量创建一组相同类型的变量

创建方式:
(1)int[] a = {1,2,3}
(2)int[] a = new int[] {1,2,3}
(3)int[] a = new int[4]

数组的使用:
取下标,从0开始
获取长度.length
数组作为方法的参数

5、方法

用于描述对象的行为

方法的创建:修饰限定符+返回值类型+方法名+参数列表+方法体

方法的调用:方法名+实参列表

方法的重载:方法名相同,方法在同一个作用域中,参数个数不同,参数类型不同,返回值类型不影响重载

构造方法:在实例化对象的时候会被自动调用的方法,方法名和类名相同,用于对象实例化。

6、类和对象

1、简单认识类:类主要是用来对一个实体(对象)来进行描述的。
2、类定义的格式:

class 类名{
field;//成员属性
method;//成员方法
}

一个.Java文件中允许有多个类,其中一个(不能多个)用public修饰的类类名必须与文件名严格相同,同一个包中不能有两个相同的类。

3、类的实例化

定义:用类类型创建对象的过程叫做类的实例化,在Java中用new关键字配合类名的实例化。

注意:
new关键字用于创建一个对象的实例
使用 . 来访问对象中的成员和方法
同一个类可以有多个对象

4、类的成员
类的成员可以包括以下:字段、方法、代码块、内部类和接口等。

(1)字段/属性/成员变:在类中,方法外部定义的变量我们称为“字段”或“属性”或成员变量。

(2)static关键字
a)修饰属性,Java静态属性和类相关,和具体的实例无关
b)修饰方法,如果在任何方法上引用static关键字,此方法称为静态方法。

静态方法属于类而不属于类的对象
可以直接调用静态方法而无需创建类
静态方法可以访问静态数据成员,并且可以更改静态数据成员的值。

5、代码块

定义:使用“{ }”定义的一段代码

1)普通代码块:定义在方法中的代码块
2)构造代码块:定义在类中的代码块(不加修饰符)。也叫实例代码块,一般用于初始化实例成员变量。
3)静态代码块:使用static定义的代码块,一般用于初始化静态成员变量。

面向对象编程

1、继承
使用继承的目的就是为了让代码能够很好的被重复使用。

被继承的类称为:父类、超类、基类,继承于父类的类称为子类。

语法规则
基本语法:

class 子类 extends 父类{
}

使用extends指定父类
Java中一个子类只能继承一个父类
子类继承父类中的所有public的字段和方法,对于private中的字段和方法是不能访问的
子类的实例中,也包含着父类的实例,可以用super关键字得到父类实例的引用

2、组合
和继承一样,组合也是一种表达类之间关系的方式,也是能够达到代码重用的效果。组合并没有涉及到特殊的语法(诸如extends这样的关键字子),仅仅将一个类作为另一个类的字段。

public class student{
……}
public class teacher{
……}

public class school{
  public student[] students;
  public teacher[] teacher;
  }
  //  表示组合的语义类似于 什么中有什么

3、多态
1)向上转型:一个父类的引用,指向一个子类的实例,这种方法称为向上转型。向上转型的写法类似于is—a的语义。

向上转型发生的时机:
直接赋值:

Bird bird =new Bird(“圆圆”)
可以写成以下形式
Bird bird=new Bird(“圆圆”);
Animal bird2=new Bird(“圆圆”)
或者
Animal bird2=new Bird("圆圆")

// bird2是一个实例父类(Animal)的引用,指向一个子类(Bird)的实例。

以上形式成为直接赋值

方法传参:

public class Test{
  public static void main(String[] args){
        Bird bird = new Bird("圆圆");
        feed(bird);
        }
  public static void feed(Animal animal){
    animal.eat("谷子");
  }
}

方法返回:

public class Test{
 public static void main(String[] args)
    Animal animal=findMyAnimal();
     }
  public static Animal findMyAnimal(){
  Bird bird=new Bird("圆圆")return bird;
    }
    y}

2)动态绑定
在Java中,调用某个类的方法,究竟是执行了哪段代码(是父类方法中的代码,还是子类中的代码),要看这个引用指向的是父类对象还是子类对象,这个过程是程序运行时决定的(而不是编译期),因此称为动态绑定。

3)方法重写
子类实现父类的同名方法,并且参数的类型和个数完全相同,这种情况称为 覆写/重写/覆盖。

重写的注意事项
a)普通方法可以重写,static修饰的静态方法不能重写
b)重写中子类的方法访问权限不能低于父类的访问权限
c)重写的方法返回值类型不一定和父类的方法相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值