zoukankan      html  css  js  c++  java
  • 认识Java

    Java简介

    • Java语言体系中,最基础的部分是Java SE,其是Java的标准版本,包含了Java的一些面向对象的特性等;Java EE是Java的企业版;Java ME用于嵌入式开发
    • JVM:Java Virtual Machine;JRE:Java Runtime Environment;JDK:Java Development Kits

    安装步骤

    • 安装JDK。成功标志:java -version
    • 配置环境变量。JAVA_HOME:JDK安装路径;PATH:JDK目录文件位置(jdk目录in);CLASSPATH:类库文件位置(jdk目录lib)。成功标志:javac -version

    编译运行Java程序

    • Java的源代码文件以.java结尾
    • 使用编译器,也即是javac对源代码文件进行编译操作。产生.class文件,该文件是Java的字节码文件,字节码文件与Windows或者是Linux无关
    • 使用解释器,也即是java.class文件进行解释运行,注意:使用java解释时,字节码文件不需要带.class后缀名

    使用Eclipse开发Java程序

    • 使用Eclipse,首先应创建一个Java project
    • 创建Java Package,创建Java程序包的目的在于便于管理Java代码,类似于命名空间
    • 运行Java程序。Run as Java Application

    Java程序构成

    • 对象(object):类的实例。
    • 类(class)
    • 方法(method)
    • 实例变量

    Java标识符

    Java标识符由字母,数字,下划线,美元符号组成。其中,标识符首字符不能是数字。
    一些约定俗称的规定:

    • 类和接口使用大驼峰式写法,如MyClass,HelloWorld
    • 方法名使用小驼峰式写法,如myName,setTime
    • 常量名使用全大写,词与词之间使用下划线连接,如SIZE_NAME

    变量和常量

    • 变量,如int,实际上是一种基本类型(premitive type)
    • 常量,使用关键字final声明,不能修改的量

    注释

    • //注释一行
    • /*...*/注释多行
    • /**...**/注释若干行并写入javadoc文档

    Java中的object.equals()和==区别

    • 对于==,如果作用于基本数据类型的变量,则直接比较存储的值是否相等;如果比较引用类型的变量,则比较的是对象的"地址"是否相等。
    • 对于object.equals(),equals()不能作用于基本数据类型。如果没有对equals()方法进行重载,则比较的是对象的"地址";但诸如StringDate等类对equals()进行了重载,比较的是“地址”(在Java中称为引用)所指向的对象。

    附录:8种基本数据类型

    • 浮点型:float(4 bytes),double(8 bytes)
    • 整型:byte(1 byte),short(4 bytes),int(4 bytes),long(8 bytes)
    • 字符型:char(2 bytes)
    • 布尔型:boolean
      注意:String不是基本数据类型

    Java的boolean和数值的强制转换

    • 在C语言中,非0即是true,否则为false,但是在Java中boolean是不能和int等互转的,如While(1){}在Java中是错误的。

    一维数组和二维数组

    • 一维数组:type []arrayName=new type[arrayNumber];
      e.g.:int []ages={1,2,3}
    • 二维数组:type [][]arrayName=new type[row][column]
      e.g.:String [][]name={{"Simon","Nancy"},{"Tim","Che"}}

    方法签名

    访问修饰符 返回值类型 方法名(参数列表){方法体}
    e.g.:public void main(String args[]){...}

    方法重载

    所谓之方法重载,是方法名相同,但参数列表不同(参数类型/个数/顺序至少有一项不同)的方法。如下列重载的方法:

    	void f(int i) {
    		System.out.println("i=" + i);
    	}
    
    	void f(float f) {
    		System.out.println("f=" + f);
    	}
    
    	void f(String s) {
    		System.out.println("s=" + s);
    	}
    
    	void f(String s1, String s2){
    		System.out.println("s1+s2="+(s1+s2));
    	}
    
    	void f(String s, int i){
    		System.out.println("s="+s+",i="+i);
    	}
    

    Java的封装机制

    面向对象的三大特性:封装,继承,多态

    Java封装的方法

    • 在需要修饰的属性前添加修饰符,如private关键字

    • 对每个属性提供公共方法访问

    • 在公共方法中提供属性值的合法性判断语句
      e.g.:

       package com.mengngn
      
       public class People{
       	private double height;
       	
       	public double getHeight(){
       		return height;	
       	}
       	
       	public void setHeight(double newHeight){
       		if(newHeight<0) return;
       		height=newHeight;
       	}
       }
      

    由于类名是可重复的,所以Java提供了类似命名空间的机制,包package

    	//定义包。注意,包名定义应放在源程序的第一行,包名可用“.”隔开
    	package PackageName
    
    	//正如目录可以用"/"来区分层次,包可以使用"."分层
    	package com.coder.chen
    

    包名的命名规范是全小写字母,导入包的方法是:import com.coder.chen.*

    内部类

    类内可定义另外一个类,这就是内部类。内部类又分为:成员内部类,静态内部类,局部内部类匿名内部类

    • 匿名内部类举例

       package com.coder.chen;
      
       public class Outer { 
      
       	public Inner getInner(final String name, String city) { 
       		//匿名内部类
       		return new Inner() { 
       			private String nameStr = name; 
       			public String getName() { 
       				return nameStr; 
       			} 
       		};
       	} 
       } 
      

    继承的语法

    一个子类继承父类的语法:class SubClass extends SuperClass{...}

    方法重写

    可以对父类的方法重写,重写的方法必须与父类的方法签名一致,即返回值类型,参数类型,参数个数和方法名都必须一致。

    继承的初始化顺序

    继承的初始化顺序是先初始化父类再初始化子类。

    final关键字

    • final修饰类则该类为最终类,不允许被继承
    • final修饰方法,则该方法不允许重写
    • final修饰属性,则该属性不需要隐式初始化,属性必须有值或者在构造函数中赋值。
    • final修饰变量,则变量是常量

    super关键字

    • super在子类中使用代表父类对象
    • 访问父类方法:super.method()
    • 访问父类属性:super.property
    • 子类构造方法需要调用父类构造方法时,在子类构造方法最前面的位置:super()
      多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。多态也称作动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。

    Java的多态

    向上转型

    	SuperClass c=new SuperClass();//c是父类引用,指向本类对象
    	SuperClass c=new SubClass();//c是父类引用,指向的是子类对象
    

    不能使用一个子类的引用指向父类对象

    多态的实现方式

    多态的实现方式:方法重写,抽象类和抽象方法和接口

    • 抽象类和抽象方法
      abstract void method();

      1.用 abstract 修饰符定义抽象类
      2.用 abstract 修饰符定义抽象方法,只用声明,不需要实现
      3.包含抽象方法的类就是抽象类
      4.抽象类中可以包含普通的方法,也可以没有抽象方法
      5.抽象类的对象不能直接创建,我们通常是定义引用变量指向子类对象。

    • 接口
      修饰符 interface 接口名 [extend 其它类]{//声明变量,抽象方法}
      e.g.:

       interface Animal {
       		//编译错误,x需要初始化,因为是 static final 类型
       		//int x;
       		int y = 5;
       		public void eat();
       		public void travel();
       }
      

    多继承实现方式:修饰符 class ClassName implements Interface1,Interface2{...}
    1.接口不可实例化对象
    2.接口中所有方法均是抽象方法
    3.接口成员均是static final类型
    4.接口支持多继承

  • 相关阅读:
    Linux学习之十九-Linux磁盘管理
    Linux学习之十八-sudo分权管理
    Linux学习之十七-配置Linux简单的脚本文件自启动
    Linux系统救援模式应用:恢复误删的系统文件
    Linux学习之十六-Linux用户管理
    Linux学习之十五-Linux文件特殊权限和附加权限
    Linux学习之十四-Linux文件和目录权限
    Linux学习之十三-vi和vim编辑器及其快捷键
    Linux学习之十二-Linux文件属性
    Linux系统救援模式应用:单用户模式找回密码
  • 原文地址:https://www.cnblogs.com/mengnan/p/9307592.html
Copyright © 2011-2022 走看看