二维数组
int[ ][ ] arr=new int[3][2];
例子:
class ArrayDemo2
{
public static void main(String[] args)
{
int sum=0;
int[][] arr={{3,1,7},{5,8,2,9},{4,5}};
for(int x=0;x<arr.length;x++)
{
for(int y=0;y<arr[x].length;y++)
{
System.out.print(arr[x][y]+",");
sum+=arr[x][y];
}
}
System.out.println("sum="+sum);
}
}
面向对象
C++ JAVA C# 都用的面向对象原理
概念:对于面向对象思想,强调的是对象
特点:
- 面向对象就是一种常见的思想,符合人们的思考习惯
- 面向对象的出现,将复杂的问题简单化
- 面向对象的出现,让曾经在过程中的执行者变成了对象中的指挥者
用JAVA语言对现实生活中的事物描述
通过类的形式体现的
对于事物的描述通过2个方面
①属性 ②行为
对象:就是该类事物实实在在存在的个体
类与对象的关系?
类:事物的描述
对象:该类事物的实例(在Java中通过创建new)
要使用对象中的内容可以通过 对象.成员 的形式完成调用
定义类其实就是定义类中的成员
成员:成员变量-----属性 成员函数----------行为
成员变量和局部变量的区别:
- 成员变量定义在类中,整个类中都可以访问 ;局部变量在函数,语句,局部代码块中,只在所属区域有效
- 成员变量存在于堆内存 ;局部变量存在于栈内存
- 成员变量随着对象的创建而存在,随着对象的消失而消失;局部变量随着所属区域烦人执行而存在,随着所属区域的结束而释放
- 成员变量都有默认初始值 ;局部变量没有默认初始值
匿名对象
new Car( );
Car c=new Car();
c.run();
new Car().run;
- 当对象对方法仅进行一次调用的时候,就可以简化成匿名对象
- 匿名对象可以作为实际参数进行传递
Car c1=new Car();
show(c1);
show(new Car());
基本数据类型参数传递
引用数据类型传递
封装
指隐藏对象的属性和细节,仅对外提供公共访问方式
好处:
- 将变化隔离
- 便于使用
- 提高重用性
- 提高安全性
封装原则:
- 将不需要的对外提供的内容藏起来
- 将属性都隐藏,提供公共方法对其访问
class Person
{
private/*私有*/ int age;
/*public void setAge(int a)
{
age=a;
}
public int getAge()
{
return age;
}
*/
public void haha(int a)
{
if(a>0&&a<130)
{
age=a;
speak();
}
else
System.out.println("错误的数据");
}
void speak()
{
System.out.println("age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p=new Person();
p.haha(-20);
}
}
private---------权限修饰符用于修饰类中成员(私有的内容只在本类中有效)
注意:私有仅仅是封装的一种体现而已