Java对象、数组的基础运用

1对象的行为:

1.1内存分配栈和堆的区别

栈:保存局部变量的值(用来保存基本数据类型的值,保存类的实例的引用)

堆:用来存放动态产生的数据,比如new出来的对象

1.2调用方法

>方法返回一个值,返回一个基本数据类型或引用类型传给方法调用者

>方法不返回值,返回值声明为void

>方法抛出一个异常给方法的调用者

 1 public class Date{
 2         public int day,month,year;
 3
 4         public int getDay(){//返回整型
 5             System.out.println("在getDay方法内部");
 6             return day;
 7     }
 8     public void printDate(){//不返回值
 9         System.out.println("在printDate方法内部");
10         System.out.println(month+"/"+day+"/"+year);
11     }
12 }        

1.3方法签名 包括:1)访问修饰符,public、private、protected以及默认访问修饰符

> public在本类、同包不同类、子类以及不同类中可以调用

> protected在本类、同包不同类以及子类中可以调用

> defuacule在本类以及同包不同类可以调用 (默认情况)

> protected只有在本类中可以调用

   2)可选修饰符static、final、abstract、native、synchronized、native

> 用static修饰的为静态成员,为类的所有对象共享(分配1个空间);在静态方法中,只能直接调用静态成员,不能直接调用非静态成员;成员方法中,可以直接调用静态成员与非静态成员。

   3)返回值(方法签名必须包括返回值的类型,如不需要返回值则使用void)

     4)方法名(方法签名必须出现在返回值之后,可以为任何有效Java标识符)

   5)形式参数列表(在方法名的后面必须是用一对括号括起来的形式参数列表)

     6)抛出的异常列表(方法可以抛出一个异常给方法调用者,如果方法抛出一个受检查的异常,该异常必须在方法签名中使用throes关键字声明)

public void readFromFile() throws IOException, SecurityException

1.4形式参数与实际参数以及按值调用

形式参数列表:用于声明传递到方法中的数据类型

实际参数:传递给形式参数的数据

按值调用:当实际参数传递给形式参数时,实际参数的数据被复制给形式参数,在方法调用之间复制数据的过程称为按值调用

1.5方法重载

含义:一个类有两到多个同名但是有不同参数列表的方法

要求:参数类型不同、参数个数不同、参数列表不同

public class Calculator{
  public  int multiply(int x ,int y ){
       System.out.println("整数与整数相乘");
       return x * y;
}
  public  double multiply(double x double y ){
        System.out.println("实数与实数相乘");
         return x * y;
}
  public  double multiply(int x ,double y ){
        System.out.println("整数与实数相乘");
         return x * y;  }
}

1.6构造器(构造方法)

用途:在对象实例化时被调用,初始化对象中的成员变量

属性:名字与类名一致,不能声明返回值,也不能返回void

注意:1)默认情况下,类中有一个无参构造方法;2)当写出带参构造方法系统默认的无参构造方法就不再生成

格式:

1  public class Radio{
2       public int volume;
3       public Radio(){}//无参构造器
4       public Radio(int x){//带参构造器
5          volume=x;
6      }
7  }

在构造器中使用this

 1   public class Radio{
 2       public int volume;
 3       public int channel;
 4       public Radio(){
 5              this(4,10);
 6 }//无参构造器
 7       public Radio(int c){//带参构造器
 8            this(c,10);
 9  }
10      public Radio(int c,int v){//带参构造器
11           volume = v;
12           channel = c;
13  }
14  }

* 用this关键字构造器调用其他构造器,但this语句必须是构造器中的第一句可执行语句;

2数组:

2.1数组:

含义:存储在一个连续的内存块中的元素集合,每个元素是相同的数据类型,通过索引进行区分

创建数组:

>声明一个数组的引用

》 数据类型 [] 数组名; (推荐)或 数据类型  数组名 [];   // int [] sums;   或 int sums[];

* 此时sums为一个引用,可以指向任何一个int类型的数组,不管数组中有多少元素,可以赋值为null

>使用new关键字初始化数组,并指定数组大小

》 数组名 = 数据类型 [长度]     //  sums= int sums[20];

*此时sums被new关键字初始化,其值为默认值()

声明并分配空间:

  > double[] temps=new double[30];

声明并分配空间时元素初始化:

   > int score=new int[]{1,2,3....};          或者          int[] score={1,2,3....};

2.2数组长度

常见错误:ArrayIndexoutofBoundsException:数组下标越界

length属性代表数组的大小:

 1     public void register(){
 2         int sums = new int[20];  3         System.out.println(users.length);  4         for(int i = 0; i < users.length; i++){
 5             System.out.println(i);   7         }   8      }  9                 

foreach:用于数组组成或集合遍历

1     public void showAllUsers(){
2         for (User user : users) {
3             if (user != null)
4                 System.out.println(user);
5         }
6     }

2.3引用数组

Java中有九种类型的数组:八种基础数据类型数组和引用类型数组

 1 /**
 2 * employee员工类
 3 */
 4
 5 public class Employee{
 6        public String name; // 姓名
 7      public String gender; // 性别
 8      public int age; // 年龄
 9      public Employee(){}//无参构造器
10      public Employee(String name,String gender, int age){
11               this.name = name;
12               this.gender= gender;
13               this.age= age;
14 }
15 }
16
17
18 /**
19 *  数组演示
20 */
21 public class  Emp{
22        int [] sums = new int[20]; // 基础数据类型数组
23      Employee em =  new  Employee[20]; // 引用类型数组
24 }

2.4数组初始化

使用new关键字初始化数组,并指定数组大小

> 数组名 = 数据类型 [长度]     // int []  sums= int sums[20];

声明并分配空间:

  > double[] temps=new double[30];

声明并分配空间时元素初始化:

   > int score=new int[]{1,2,3....};          或者          int[] score={1,2,3....};

1 public class  Emp{
2       int [] sums = new int[20];  3     int [] temps = new int[]{1,2,3...};
4     int [] score = {1,2,3...};
5  }

2.5多维数组

同一维数组一样,多维数组也是对象,需要一个引用,该引用是在数据类型和变量名之间用多个中括号来声明的

二位数组:

int [][] sums = new int [10][10];

时间: 2024-10-05 16:33:47

Java对象、数组的基础运用的相关文章

JSon_零基础_007_将JSon格式的&quot;数组&quot;字符串转换为Java对象&quot;数组&quot;

将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key)方法取得key对应的value部分(字符串). 通过getJSONObject(key)可以取得一个JSONObject对象. 通过getJSONArray(key)可以得到一个JSONArray对象. 导入需要的jar包: package com.west.

java对象数组

java对象数组与普通数组有点不一样其实最底层的原理是一样的我们使用对象数组一定要记得创创建对象不然会报空指针异常, 我已经遇到了两次了,每次都浪费 了很长时间现在贴个初始化过程大家看看看好了下面一定要记得new对象不要只在前面new数组 public class Student{ private String username; private int num; public Student(String username, int num) { this.username = usernam

java 对象数组

数组是引用类型,而类同样是引用类型,所以如果是对象数组的话表示一个引用类型里面嵌套其他引用类型. 在前面两篇都是属于基本数据类型的数据,但是索引的引用数据类型也同样可以定义数组,这样的数组称为对象数组. 以类为例定义对象数组: 动态初始化:   //开辟之后对象数组的内容都是默认值,即null值 类名称 对象数组名称 [ ]  = new 类名称 [长度] : 分步完成: 声明对象数组: 类名称 对象数组名称 [ ]  = null ; 开辟对象数组:对象数组名称 = new 类名称 [长度]

java对象数组的概述和使用

1 public class Student 2 { 3 // 成员变量 4 private String name; 5 private int age; 6 7 // 构造方法 8 public Student() 9 { 10 super(); 11 } 12 13 public Student(String name, int age) 14 { 15 super(); 16 this.name = name; 17 this.age = age; 18 } 19 20 // 成员方法

约瑟夫环 java 对象数组实现

import java.util.Scanner; class Person{ String name; int seqno; Person(String _name, int _seqno){ name = _name; seqno = _seqno; } } public class JosephCircle { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanne

Java对象数组的使用

Java中的类属于引用数据类型,准确来说引用数据类型定义的不是类型的对象,而是类型对象的引用.引用的使用类似于C++中的指针. Java声明类对象的引用,并赋初值:Person p = null; C++定义类对象的指针,并赋初值:Person* p = NULL; 在C++中类对象的指针p并不是Person类的对象,它只是存放了一个Person类对象在内存中的起始地址.Java中类对象的引用和C++中类对象指针意义相同,类对象的引用本身的地址不代表对象的起始地址,但类对象的引用中存储了对象在内

java 对象数组定义

下面代码实现了定义一个数组对象 1 public class Student { 2 3 private String username; 4 private int num; 5 6 public Student(String username, int num) { 7 this.username = username; 8 this.num = num; 9 } 10 11 public static void main(String[] args) { 12 Student s[] =

JAVA对象JSON数据互相转换的四种常见情况

1. 把java 对象列表转换为json对象数组,并转为字符串 JSONArray array = JSONArray.fromObject(userlist);    String jsonstr = array.toString(); 2.把java对象转换成json对象,并转化为字符串 JSONObject object = JSONObject.fromObject(invite);   String str=object.toString()); 3.把JSON字符串转换为JAVA 对

JSON 字符串 与 java 对象的转换

jsonLib 经典文章:http://json-lib.sourceforge.net/xref-test/net/sf/json/TestJSONObject.html // 引入相应的包 //json-lib-2.2-jdk15.jar import net.sf.json.JSONArray;import net.sf.json.JSONObject; 1. //把java 对象列表转换为json对象数组,并转为字符串 JSONArray array = JSONArray.fromOb

Json对象与Json字符串的转化、JSON字符串与Java对象的转换

Json对象与Json字符串的转化.JSON字符串与Java对象的转换 一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: JSON.stringify(obj)将JSON转为字符串.JSON.parse(string)