java基础概念

java的基本概念

学习java需要先了解的一些基本概念:

:描述一类对象有的行为和状态,比如class student{}
方法:方法还就是行为,一个类包含很多方法,比如:public int getnum(int num){}
对象:类的实例化,包含状态和行为,Student s=new Student('梨花',18,'女'),构造方法可以重新写,public Puppy(String name)
多态重写和重载,同对象对同一物体或事件发出不同的反应或响应,继承,父类引用指向子类对象A b =new a(); (a是A的子类),这样b就可以调用父类的方法,以及子类重载的方法
继承:子类继承父类,extendsimplements,不支持一个子类继承多个父类,但是可以继承多个接口(接口跟接口之间采用逗号分隔),子类可以继承父类的变量和方法,子类必须重写父类的所有抽象方法
封装:数据的隐藏,该露的露,该藏的藏,比如:变量私有化(private),使用get/set方法访问,eclipse自动生成get/set方法(source--generate getter and setter
抽象:如果一个类中存在抽象方法,那么该类就必须声明为抽象类;将共性行为(方法)抽取到父类,发现该方法的实现逻辑无法在父类中给出具体明确,该方法就可以定义为抽象方法;抽象方法定义:public abstract 返回值类型 方法名(参数列表); 没有方法体{} ;抽象类定义:public abstract class Employee{}抽象类的子类要重写父类中的所有抽象方法,除非这个子类是抽象类就可以不用;如果方法在父类中描述不清,就用抽象方法;抽象类除了不能实例化,其他使用方法和普通的类完全相同,一个接口能继承另一个接口,这和类之间的继承比较相似,类的多继承是不合法,但接口允许多继承:public interface Hockey extends Sports, Event
重载:子类对父类的一些方法进行重写,调用时就会使用子类的方法
接口:是抽象方法的集合,接口通常以interface来声明(interface NameOfInterface{}),一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类,接口不能用于实例化对象,没有构造方法,接口不能包含成员变量,除了public static final 变量,接口中所有的方法必须是抽象方法,Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法


命名规则

编写 Java 程序时,应注意以下几点:

大小写敏感:Java 是大小写敏感的
类名:类名的首字母应该大写,如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写,例如myFirstJavaClass
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。


命名Java 标识符,有以下几点需要注意:

  1. 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  2. 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  3. 关键字不能用作标识符,并且标识符大小写敏感
  4. 合法标识符举例:age、$salary、_value、__1_value
  5. 非法标识符举例:123abc、-salary

修饰符

Java可以使用修饰符用来定义类、方法或者变量,主要有两类修饰符:

访问控制修饰符 :

  1. default:使用对象:类、接口、变量、方法
  2. public:使用对象:变量、方法。 注意:不能修饰类(外部类)
  3. protected :使用对象:类、接口、变量、方法
  4. private:使用对象:变量、方法。 注意:不能修饰类(外部类)
    在这里插入图片描述

非访问控制修饰符 :

  1. final:修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
  2. abstract:抽象类和抽象方法
  3. static:类变量和类方法
  4. synchronized和 volatile :主要用于线程的编程

变量

Java 中主要有如下几种类型的变量:

局部变量 :方法中定义的变量。

类变量(静态变量) :定义在类里面,方法体之外,使用static关键字修饰,被所有对象共享,可以通过实例对象调用,也可以通过类名调用。静态方法不能使用this,super关键字,只能访问静态成员。

成员变量(非静态变量):定义在类里面,方法体之外。可以被类中的方法、构造方法和特定类的语句块访问。

基本的8个内置变量数据类型:

整数型: int byte short long 默认 0   0   0   0L
浮点数: float double 默认 0.0f   0.0d
布尔:boolean 默认 false
字符:char 默认 'u0000'
可以使用这些属性查看对应的值:SIZE(二进制的位数) MIN_VALUE(最小值) MAX_VALUE(最大值)

引用的数据变量:对象、数组 默认 null;例如:Site site = new Site("Runoob")

常量:final double PI = 3.1415927;不能被更改的数据,通常使用大写字母表示常量

int octal = 0144; //0表示八进制
int hexa =  0x64; //0x表示十六进制

类型转换

强制类型转换:(float)100
自动类型转换:int a='m'+1,只能转换从低级到高级
在这里插入图片描述
隐含强制类型转换:float f=0.34f ,小数默认是 double 类型浮点型,整数的默认类型是 int

特殊转义字符序列

在这里插入图片描述


java数组:可以保存多个同类型的变量
枚举:限制变量只能是预先设定好的值,使用枚举可以减少代码中的 bug


java关键字

在这里插入图片描述


单行注释://
多行注释:/* */
子类可以继承父类的方法和属性(extends
接口(interface

interface A{}
interface B{}
class X implements A,B{}//必须要有一个子类实现接口,如果子类不是抽象类,那么必须覆写接口中的全部抽象方法
class 子类 [extends 父类] [implemetns 接口1,接口2,...] {}

super 和 this 关键字

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类
this关键字:指向自己的引用
在这里插入图片描述

构造器

如果父类的构造器带有参数,子类必须通过super关键字调用并且配以适当的参数列表,如果父类的构造器没有参数,不需要写任何代码,但是系统会先调用执行父类的无参数构造器,在执行后面的代码
在这里插入图片描述

重写

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!finalstatic方法不能被重写,子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法,子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法,构造方法不能被重写,只能继承才能重写

重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常,比如:父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类
在这里插入图片描述

重载

重载(overloading) 是在一个类里面,方法名字相同,参数必须不同。返回类型可以相同也可以不同,最常用的地方就是构造器的重载,被重载的方法可以声明新的或更广的检查异常,方法能够在同一个类中或者在子类中被重载。
在这里插入图片描述
总结:

  1. 方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。
  2. 方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。
  3. 方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
    在这里插入图片描述

类型判断

在这里插入图片描述

枚举

Java 枚举是一个特殊的类,一般表示一组常量

enum Color
{
    RED, GREEN, BLUE;
}
 
public class Test
{
    // 执行输出结果
    public static void main(String[] args)
    {
        Color c1 = Color.RED;
        System.out.println(c1);//RED
        // 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException 
        System.out.println(Color.valueOf("RED")); //RED
		 // 迭代枚举
        for (Color col : Color.values())
        {
            // 查看索引
            System.out.println(col + " at index " + col.ordinal());
           //RED at index 0 
           //GREEN at index 1 
           //BLUE at index 2
        }        
    }
}

枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用,枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它

java包(package)

把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用,如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突,包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。

包语句的语法格式为:package net.java.util;,也是存储的路径net/java/util/Something.java

为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 import 语句可完成此功能。 在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:import package1[.package2…].(classname|*);,如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略

import payroll.*表示引入包payroll包里面的所有的类

参考网址java教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值