Java基础一
Java基础一
1.Java的基本概念:
Java是一种面向对象的语言,由于具有面向对象特性的语言,Java支持以下基本概念:
1)多态性 2)继承 3)封装 4)抽象化5)类 6)对象 7)实例8)方法 9)消息解析
对象:对象具有状态和行为。例如:狗有状态 - 颜色,名称,繁殖以及行为,摇头晃脑,吠叫,吃。对象是类的实例。
类:一个类可以被定义为描述行为的模板/蓝色印花/指出其类型支持的对象。
方法:一种方法,基本上是一个行为,一个类可以包含许多方法。它是在将逻辑写入时,数据操纵和所有的动作被执行的方法。
实例变量:每个对象都有其独特的实例变量,一个对象的状态是由分配给这些实例变量的值来创建。
继承:在Java中,类可以衍生子类,基本上如果需要创建一个新的类,在这里已经有一些需要的代码的类,然后就可以从已经存在的代码中派生新类。
这个概念允许重用现有类的字段和方法,而无需重写代码在一个新的类,在这种情况下现有的类称为父类和派生类称为子类。
附接口概念:在Java语言中,接口可以被定义为关于如何相互通信的对象之间的联系,接口起到了至关重要的作用,当涉及到继承的概念。
2.Java基本语法:
大小写敏感性:Java是大小写敏感的,这意味着标识符Hello和hello会有不同的含义在Java中。
类名称:对于所有的类名首字母应该大写,如果需要用几个单词来构成类的名称,每个内部单词的第一个字母应该大写。
如类名 MyFirstJavaClass
方法名称:所有的方法名应该以小写字母开头。
如果几个单词来构成方法的名称,每个内部单词的第一个字母应该大写。
例如 public voidmyMethodName()
程序文件名:程序文件的名称应的类的名称完全匹配。
保存文件时,应该使用类名(请记住Java是大小写敏感)并添加'.java'的名称的末尾(如果该文件名和类名不符合程序将无法编译)保存。
例如: 假设'MyFirstJavaProgram“是类名。那么该文件应保存为 'MyFirstJavaProgram.java'
publicstatic void main(String args[]) - Java程序处理从main()方法开始,这是每一个Java程序的强制性部分入口。
3.Java标识符:
所有的Java组件都需要名字,用于类,变量和方法的名字叫做标识符。
在Java中,有几点要记住的标识符。它们如下:
1)所有的标识符应该以一个字母(A至Z或a到z),货币字符($)或下划线(_)。
2)之后的第一个字符的标识符可以具有字符的任意组合。
3)关键字不能被用作标识符。
4)最重要是标识符是区分大小写的。
5)合法标识符的例子: age, $salary, _value, __1_value
6)非法标识符的例子s: 123abc, -salary
4.在Java中提供了两种数据类型:
1)原始数据类型
2)引用/对象数据类型
原始数据类型
1)byte:最小值为 -128 (-2^7),最大值为 127 (inclusive)(2^7 -1);
2)short: Short 数据类型是一个16位带符号二进制补码整数,最小值为 -32,768 (-2^15),最大值为 32,767 (inclusive)(2^15 -1);
3)int: int数据类型是一个32位带符号二进制补码整数, 最小值-2,147,483,648.(-2^31), 最大值为 2,147,483,647(inclusive).(2^31 -1);
4)long: Long数据类型是一个64位带符号二进制补码整数, 最小值为 -9,223,372,036,854,775,808.(-2^63), 最大值为 9,223,372,036,854,775,807 (inclusive). (2^63 -1), 默认值是 0L.
5)float: 双数据类型是双精度64位IEEE754浮点数, 浮动主要是用来保存在内存中的浮点数大型数组, 默认值是 0.0f;
6)double: 双数据类型是双精度64位IEEE754浮点数, 此数据类型通常用作十进制值的默认数据类型,一般默认的选择, Double数据类型不应该被用于精确值,例如货币, 默认值是 0.0d;
7)Boolean: 只有两个可能的值:true和false, 此数据类型用于跟踪真/假条件简单标志;
8)Char:char数据类型是一个单一的16位的Unicode字符, char数据类型是一个单一的16位的Unicode字符, 例子: charletterA ='A';
引用数据类型:
1)使用类定义的构造函数中创建引用变量。它们被用来访问对象。这些变量被声明为是不能改变的一个特定类型。例如, Employee, Puppy 等。
Class对象,与其它类型的数组变量来下引用数据类型。
任何引用变量的默认值是null。
引用变量可以被用于指代所声明的类型或任何相容的类型的任何对象。
例子: Animal animal= new Animal("giraffe");
5.Java修饰符:
像其他的语言,它是可以修改的类,方法等,通过使用修饰符。有两类修饰符:
访问修饰符: default, public , protected,private
非访问修饰符: final, abstract, strictfp
6.Java中的类
类的样本如下:
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
一个类可以包含以下任意变量类型。
局部变量:方法里面,构造函数或块中定义的变量称为局部变量。该变量将被声明和初始化的方法中,当该方法完成该变量将被销毁。
实例变量:实例变量都在一个类,但任何方法之外的变量。这些变量在类被加载的实例化。实例变量可以从内部的任何方法,构造函数或特定类别的块访问。
类变量:类变量是在一个类中声明,任何方法之外的变量,用static关键字。
7.构造函数:
在讨论关于类,其中最重要分课题之一是构造函数,每个类都有一个构造函数。如果我们不明确地写一个构造函数的类,Java编译器生成一个默认构造函数的类。
创建一个新的对象中的每个时间,至少有一个构造函数将被调用。构造函数的主要规则是,他们应该具有相同的名称作为类。一个类可以有多个构造函数。
构造函数的例子如下:
public class Puppy{
public Puppy(){
}
public Puppy(String name){
}
}
8.创建对象
如前面提到的,一个类提供的图纸对象。所以基本上一个对象是从一个类创建的。在Java中,关键字 new 用于创建新的对象。
从类创建对象时有三个步骤:
· 声明: 变量声明,一个变量名的对象类型。
· 实例: “new”关键字是用来创建对象。
· 初始化: 关键字 new 后跟调用一个构造函数。这个调用初始化新的对象。
创建对象的实例在下面给出:
public class Puppy{
public Puppy(String name){
System.out.println("Passed Name is :" + name );
}
public static void main(String []args){
Puppy myPuppy = new Puppy( "tommy" );
}
}
实际举例如下:
public class Puppy{
int puppyAge;
public Puppy(String name){
System.out.println("PassedName is :" + name );
}
public voidsetAge( int age ){
puppyAge = age;
}
public intgetAge( ){
System.out.println("Puppy's age is :" + puppyAge );
return puppyAge;
}
public static void main(String []args){
Puppy myPuppy = new Puppy( "tommy" );
myPuppy.setAge( 2 );
myPuppy.getAge( );
System.out.println("VariableValue :" + myPuppy.puppyAge );
}
}
9.简单java类:
简单开发类的设计原则:
1)类名称必须要有实际的意义,可以明确地描述出某一实体,如:学生,工人等;
2)类中的所用属性必须使用Private封装;
3)所用封装的属性必须按照要求编写setter,getter方法;
4)类中可以定义若干构造方法,但是必须保留一个明确的无参构造方法定义;
5)类中不允许出现任何的输出操作,所有的输出必须将数据返回给调用处输出;
6)【临时】类中应该提供给一个可以取得对象完整信息的方法,暂时将方法命名为"getInfo()"。
附程序:
class Emp{
private int empno;
private Stringename;
private String job;
private double sal;
private double comm;
public Emp(){
}
public Emp(inteno,String name,String j,double sa,double com){
setEmpno(eno);
setEname(name);
setJob(j);
setSal(sa);
setComm(com);
}
public StringgetInfo(){
return "员工编号"+empno+"\n"
"员工姓名"+ename+"\n"
"员工工作"+job+"\n"
"员工工资"+sal+"\n"
"佣 金"+comm;
}
public void setEmpno(inteno){
empno=eno;
}
public voidsetEname(String name){
ename=name;
}
public voidsetJob(String j){
job=j;
}
public voidsetSal(double sa){
sal=sa;
}
public voidsetComm(double com){
comm=com;
}
public int getEmpno{
return empno;
}
public StringgetEname{
return ename;
}
public StringgetJob{
return job;
}
public doublegetSal{
return sal;
}
public doublegetComm{
return comm;
}
}
public class TestDemo{
public static voidmain(String[] args)
{
Emp emp=newEmp(0123,"张三","网络工程师",800.0,0.1);
System.out.println(emp.getInfo());
}
}