java学习笔记2

纵然是瞬间 提交于 2020-02-02 04:50:10

六、对象和类

java是面向对象的语言,支持以下基本概念:多态、继承、封装、抽象、类、对象、实例、方法、重载

对象对象是类的实例,有状态和行为,以一只狗为例,状态例如颜色、姓名、年龄等;行为包括:吃、叫、摇尾巴等。(可以理解为特指)

类是一个模板,描述一类对象的行为和状态。(可以理解为泛指)

eg: java中一个狗的类

public class Dog {
  string breed;//成员变量,创建对象时自动实例化
  int age;//成员变量,创建对象时自动实例化
  string color;//成员变量,创建对象时自动实例化
  
  void barking(int n){  ...   }//n是局部变量,方法 结束后自动销毁 。

  void eating(){  ...  }
  }

七、java中的构造方法

每个类都有构造方法,如果用户没有定义,则java编译器会提供一个默认的构造方法。
创建一个对象时,至少调用一个构造方法。
构造方法必须与类同名。
eg:构造方法的举例

public class Puppy{
	string name;
	public Puppy(string  name) { ... }
}

八、java中创建对象的方法

public class Puppy {
	public Puppy(sting name){
		system.out.println("小狗的名字是:"+name)
	}
	public static void main(string [ ]  args){
		Puppy myPuppy = nem Puppy ("jack");
 	}
}

另一个实例:

public class Puppy{
   int puppyAge;
   public Puppy(String name){
      // 这个构造器仅有一个参数: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( 2 );
      /* 调用另一个方法获取age */
      myPuppy.getAge( );
      /*你也可以像下面这样访问成员变量 */
      System.out.println("变量值 : " + myPuppy.puppyAge ); 
   }
}

注意到,在类方法中并不需要使用成员运算符!

编译并运行上面的程序,产生如下结果:

小狗的名字是 : tommy
小狗的年龄为 : 2
变量值 : 2

九、java中的Import语句

Import语句用来提供一个合理的路径,使得编译器可以找到某个类。

下面的命令会载入java_installation/java/io路径下的所有类

import java.io.*;

以下是一个实例:
首先创建一个Employee类,注意到其中无main方法

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);
   }
}

下面创建一个测试类Test,注意到其中的类Employee!

import java.io.*;
public class EmployeeTest{
 
   public static void main(String[] args){
      /* 使用构造器创建两个对象 */
      Employee empOne = new Employee("RUNOOB1");
      Employee empTwo = new Employee("RUNOOB2");
 
      // 调用这两个对象的成员方法
      empOne.empAge(26);
      empOne.empDesignation("高级程序员");
      empOne.empSalary(1000);
      empOne.printEmployee();
 
      empTwo.empAge(21);
      empTwo.empDesignation("菜鸟程序员");
      empTwo.empSalary(500);
      empTwo.printEmployee();
   }
}

结果如下:

$ javac EmployeeTest.java
$ java EmployeeTest
名字:RUNOOB1
年龄:26
职位:高级程序员
薪水:1000.0
名字:RUNOOB2
年龄:21
职位:菜鸟程序员
薪水:500.0

部分代码来自菜鸟教程

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!