局部变量:
在方法、构造方法或者语句块中定义的变量被称之为局部变量。变量的声明和初始化都是在方法中,方法结束后,变量就会自动销毁
成员变量:
成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特性类语句块访问。
类变量:
类变量也声明在类中,方法体之外,但是必须声明为static类型。
构造方法:
每个类都有构造方法。如果你没有创建的话 JAVA编辑器会自动提供一个默认的构造方法。 在创建对象的时候,至少要调用一种构造方法构造方法的名称必须与类名相同,而且一个类可以拥有多个构造方法。
创建对象:
对象是根据类来创建的,在JAVA中使用关键字new来创建 创建对象需要以下三步:
1.声明: 首先声明一个对象,包括对象名称和对象类型。
2.实例化:使用关键字你new来创建一个对象。
3.初始化:使用new创建新对象时候,会调用构造方法初始化对象。
public class Puppy{
public Puppy(String name){
//这个构造器只有一个参数:name
System.out.println(name);
}
public static void main(String [] args){
Puppy myPuppy = new Puppy("tommy");
}
}
访问实例变量的方法:
通过已经创建的对象类访问成员变量和成员方法
/*实例化对象*/
objectReference = new Constructor();
/*访问类中的变量*/
objectReference = new Constructor();
/*访问类中的方法*/
objectReference.methodName();
示例如下:
package com.day01.java;
public class Puppy {
int puppyAge;
public Puppy(String name ){
System.out.println("小狗的名字是:"+ name );
}
public void setAge(int age ){
puppyAge = age;
}
public int getAge(){
System.out.println("小狗的年龄为:" + puppyAge);
return puppyAge;
}
public static void main (String [] args){
/* 创建对象 */
Puppy myPuppy = new Puppy("tommy");
/* 通过方法来设定age */
myPuppy.setAge(5);
/* 调用另一个方法来获取age */
myPuppy.getAge();
/* 访问成员变量 */
System.out.println("变量值: " + myPuppy.puppyAge);
}
}
源文件的声明规则:
在一个原文件中定义多个类,并且还有import语句和package语句时候,要注意以下和规则:
1.一个源文件只能定义一个public 类
2.一个源文件可以拥有多个非public 类
3.源文件的名称应该和public 类的类名保持一致。例如:源文件中public 类的类名是Employee,那么源文件应该命名为Employee.java
4.如果一个类定义在某个包中,那么package语句应该放在源文件的首行。
5.如果源文件中包含import语句,那么应该放在package语句和类定义之间。如果没有你package语句,那么import语句应该放在语句最首行。
6.import语句和package语句对源文件中定义的所有的类都是有效的。在同一文件中不能给不同的类不同的包声明。
7。类有若干种访问级别。并且类也分不同的类型:抽象类和final类等。其中java也有特殊的类,如:内部类、匿名类。
JAVA包
包主要用来对类和接口进行分类。当开发JAVA程序时,可能编写成千上万的类,因此很有必要对类和接口进行分类。
import语句
在java中,如果给出一个完整的限定名,包括包名、类名,那么java编译器就可以很容易的找到源代码或者类。import语句就是用来提供一个合理路径,是的编译器找到某个类
一个简单的例子
在该例子中,我们创建两个类:Employee 和 EmployeeTest。
首先打开文本编辑器,把下面的代码粘贴进去。注意将文件保存为 Employee.java。
Employee类有四个成员变量:name、age、designation和salary。该类显式声明了一个构造方法,该方法只有一个参数。
package com.Emloyee.java;
import java.io.*;
public class Employee {
String name;
int age;
String designation;
double salary;
//Employee 类的构造器
public Employee(String name ){
this.name = name ;
}
//设置age的值
public void empAge( int empAge){
age = empAge;
}
/*设置 designation的值*/
public void empDesignation(String empDesig){
designation = empDesig;
}
/*设置 salary的值*/
public void empSalary( double empSalary){
salary = empSalary;
}
/*打印信息*/
public void printEmployee(){
System.out.println("名字:" + name );
System.out.println("年龄:" + age );
System.out.println("职位:" + designation);
System.out.println("薪水:" + salary);
}
}
测试类如下:
package com.Emloyee.java;
import java.io.*;
public class EmployeeTest {
public static void main(String [] args){
/* 使用构造器创建两个对象 */
Employee empOne = new Employee("张三");
Employee empTwo = new Employee("李四");
//调用这两个对象的成员方法
empOne.empAge(26);
empOne.empDesignation("高级程序员");
empOne.empSalary(1000);
empOne.printEmployee();
empTwo.empAge(21);
empTwo.empDesignation("菜鸟程序员");
empTwo.empSalary(500);
empTwo.printEmployee();
}
}
以上两段代码 操作即可
Java 方法中加void和不加void的 区别:
只要记住void即无返回值就OK了,如果不用void,那么这个地方一定是被一个其它的类型所替代,比如下面用的是String,当然也可能是int或者Boolean等等,那么此时我们下面就要有一个return返回值。
public class Variable {
public static void speaker(){
System.out.println("你好");
}
public static String Talk(){
return "hello";
}
public static void main(String[] args) {
speaker();
Talk();
String aString = Talk();
System.out.println(aString);
}
}
Java中 static 方法讲解:
static 方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了,并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态的成员变量和方法都必须依赖于对象才能够被调用。
但是要注意的是,虽然在静态方法中不能访问非静态成员变量和非静态成员方法,但是在非静态成员方法中是可以访问静态成员方法/变量的。
例子如下:
上面可以看出来print2是静态的所以说不能访问非静态的print1 相反print1是非静态的 就可以访问print2