package javaLearn;
//java 对象和类
//Java作为一种面向对象的语言,支持一下基本概念:
//多态
//继承
//封装
//抽象
//类
//对象
//实例
//方法
//重载
//本章我们重点研究对象和类的概念。
//对象是累的实例,有状态和行为。
//类:类是一个模板,它描述一类对象的行为和状态。
//java中类
//类可以看成是创建java对象的模板。
//通过下面一个简单的泪来理解java中累的定义:
class Puppy{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
//一个类可以包含以下类型变量:
//局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
//成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象初始化的时候实例化。成员变量可以被类种方法、构造函数和特定类的语句块访问。
//类变量:类变量也生命在类中,方法体之外,但必须声明static类型。
//一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是HelloWorld类的方法。
//构造函数
//每个类都有构造方法。如果没有显示的为类定义构造方法,java编译器将会为该类提供一个默认构造方法。
//在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
//下面是一个构造方法示例:
class Puppy2{
public Puppy2(){
}
public Puppy2( String name ){
//这个构造器仅有一个参数:name
}
}
//创建对象
//对象是根据类创建的。在java中,使用关键字new来创建一个新的对象,创建对象需要以下三部:
//声明一个对象,包括对象名称和对象类型。
//实例化:使用关键字new 来创建一个对象
//初始化:使用new创建对象时,会调用构造方法初始化对象
//下面是一个创建对象的例子:
class Puppy3{
public Puppy3( String name ){
System.out.println( name );
}
// public static void main(String [] args ){
// Puppy3 myPuppy = new Puppy3( "xiexialing" );
// }
}
//访问实例变量和方法
//通过已创建的对象来访问成员变量和成员方法,如下所示:
///* 实例化对象 */
//ObjectReference = new Constructor();
//访问其中的变量
//ObjectReference.variableName;
//访问类中的方法
//ObjectReference.MethodName();
//实例
class Puppy4{
int puppyAge;
public Puppy4( String name ){
System.out.println( name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge(){
return puppyAge;
}
public static void main( String []args ){
Puppy4 puppy = new Puppy4( "xiexialing" );
puppy.setAge(2);
puppy.getAge();
}
}
//在本节的最后部分,我们将学习源文件的声明规则。当一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。
//一个源文件只能有一个public类
//一个原文件可以有多个非public类
//源文件的名称应该和public类的类名保持一致。
//如果一个类定义在某个包中,那么package语句应该在源文件的首行
//如果原文件包含import语句,那么应该放在package语句和类定义之间。
//import语句和package语句队员文件中定义的所有类都有效。
//类由若干访问级别,并且类也分不同的类型:抽象类和final类等。
//除了以上提到的几种类型,java还有一些特殊的类,如:内容类、匿名类。
//java包
//包主要用来对类和接口分类。当开发java程序时,可能编写成千上万的类,因此很有必要对类和接口进行分类。
//Import语句
//在java中,如果给出一个完整的限定名,包括包名、类名,那么java编译器就可以很轻易的定位到源代码或者类。
//Import语句
//一个简单的例子
//在该例子中,我们创建两个类:Employee 和 EmployeeTest
//Employee 类有四个成员变量:name\age\designation和salary.该类显式声明一个构造函数,该方法只有一个参数
//public class Employee{
// String name;
// int age;
// String designation;
// double salary;
//
// public Employee( String name ){
// this.name = name;
// }
//
// public void setAge( int empAge ){
// age = empAge;
// }
//
// public void setDesignation( String empDesignation ){
// designation = empDesignation;
// }
//
// public void setSalary( double empSalary ){
// salary = empSalary;
// }
//
// public void printEmployee(){
// System.out.println( "姓名" + name );
// System.out.println( "年龄" + age );
// System.out.println( "薪水" + salary );
// System.out.println( "职位" + designation );
// }
//}