怎么下载网站动态图片,会展设计专业,网站建设搭建微商导航网站,厦门网站制作推广1.知识要点 假设#xff1a; public ClassName{int data;String name;ClassName(){data1;}public static int getdata(){return data;}}/span ❶含main()的为主类。多个类放在一个文件中#xff0c;只能有一个主类。 ❷类可以不定任何构造方法(函数)#xff0c;系统… 1.知识要点 假设 public ClassName{int data;String name;ClassName(){data1;}public static int getdata(){return data;}}/span ❶含main()的为主类。多个类放在一个文件中只能有一个主类。 ❷类可以不定任何构造方法(函数)系统默认提供无参构造函数。当且仅当无任何无参构造函数时才提供。 ❸构造函数与类同名无返回类型。 ❹对象声明ClassName objectRefnew ClassName(....)实质上obejectRef为一个包含对ClassName对象的引用变量。即为引用类型简称为ClassName对象。 ❺类似于匿名数组也有匿名对象如new ClassName()就可以直接用于参数或者输出。因为此时对象不需要引用。 ❻类的数据域也可以是引用类型。例如name同样为String引用类型倘若其没有引用任何变量初始化为null。 ❼Java的类的数值域数值类型默认0引用类型默认nullboolean默认falsechar默认‘\u0000’。但是局部变量没有初始化值比如在main中不要试图定义变量未经初始化输出。 ❽不需要某个对象的时候。显式的赋给null其之前的引用的对象进入垃圾回收机制。 ❾类似数组对象名之间的赋值后者指向的对象进入垃圾回收机制Java系统自动的收回所占空间。 2.静态变量、常量与方法 ❶静态变量(类变量)类的所有实例共享数据存储在公共地址某对象修改其他的对应修改。关键字static。可以使用类名(推荐)或者引用变量调用 ❷常量关键词final static。所有类的对象共享。推荐使用类名访问增加可读性。 ❸静态方法静态方法在前面添加static关键字。比如常用的Math.random 注意 静态变量和静态实例可以在实例方法和静态方法中使用。相反实例方法和实例变量仅能使用于实例方法。因为静态方法、变量不属于某个特定的类。所谓实例方法和实例变量是依赖具体实例的比喻半径r依赖于某个圆实例getArea()得到圆的面积也是依赖实例。倘若不依赖就可以定义为静态方法或者静态变量(比如 PI) package Study_Class;
public class MyCircle {double radius;//实例变量static int j2;final static double Pi3.14159;MyCircle(){radius1.0;}MyCircle(double r){if(r0) radiusr;else radius0; }public static void main(String[] args){//int kj;//错误,实例变量不在静态方法中使用//getArea();//错误,实例方法不能在今天方法中使用MyCircle circle1new MyCircle(2.0);System.out.println(the area of circle iscircle1.getArea());//实例方法使用实例来调用 }public double getArea()//实例方法{return Math.pow(radius, 2)*Pi;}}/prepre code_snippet_id497932 snippet_file_nameblog_20141027_2_2668877 namecode classjava 3.public和private修饰符以及数据域的封装 ❶类、方法、数据域前面有public修饰符表示可以被任何其他类(通过实例访问某个public类的public数据域和方法)访问。 ❷如果不带修饰符。代表可以被同一包类的任何一个类访问(包私有)。即同一个包的类可以通过该public类实例访问public类的public类和方法也通过实例访问不带修饰符的数据域和方法。 ❸不同的包只能通过实例访问public类的public数据域和方法。 ❹仅仅只有类内定义的对象能够访问该类的私有方法和私有数据。包内其他类都不可以。如果为了限制用户创造实例可将构造方法限定为私有。 ❺对于私有数据可以用public接口方法(函数)修改。为了避免数据被篡改推荐数据域声明为私有。 简而言之: pravite限制访问权限在类内默认修饰符限制访问权限在包内public没有限定权限。 package Study_Class;
public class MyCircle {private double radius;//实例变量static int numberofObject0;final static double Pi3.14159;MyCircle(){radius1.0;numberofObject;}MyCircle(double r){if(r0) radiusr;else radius0;numberofObject;}public void setRidus(double r){if(r0) radiusr;else radius0; }public void getArea()//实例方法{System.out.println(The area is --- Math.pow(radius, 2)*Pi);}void gerRadius(){System.out.println(The radius is--- radius);}
}在同一个包内使用上面定义的类如下 package Study_Class;
public class testCircle//同一个包类调用MyCircle类
{public static void main(String[] args){MyCircle circle1new MyCircle(2.0);circle1.gerRadius();//无修饰符的方法circle1.getArea();//实例方法使用实例来调用circle1.setRidus(3.5);circle1.gerRadius();circle1.getArea();//实例方法使用实例来调用MyCircle circle2;//只是定义了引用变量System.out.println(The number is--- MyCircle.numberofObject);//1个实例circle2new MyCircle();System.out.println(The number is--- MyCircle.numberofObject);//2个实例}
} 注意 ①同一个包类可以由实例调用public和无修饰符的方法和变量②可以由类名调用静态变量③定义引用类型实际没有创造实例。 4.对象参数和对象数组 package Study_Class;
public class testCircle//同一个包
{public static void main(String[] args){MyCircle[] circlenew MyCircle[5];//每个均是默认null的引用变量for(int i0;icircle.length;i)circle[i]new MyCircle(i); print(circle);//静态方法中使用静态方法System.out.println(The number of Object is--- MyCircle.numberofObject);//2个}private static void print(MyCircle[] circle){for(MyCircle u:circle){u.gerRadius();u.getArea();}}
} 使用对象数组和给方法传递对象参数如上图。 注意 ①对象参数的实质仍旧为引用传递而不是值传递。②静态方法中不能使用非静态的数据和方法。如上图的print应该定义为static.③对象存储于堆中 转载于:https://www.cnblogs.com/engineerLF/p/5393095.html