java基础:4.1 对象和类(一)、静态量、public、private

目录

1、定义通用类

2、无引用对象数据的默认值

3、对象的赋值

4、静态变量、常量、方法

5、可见修饰符public

6、private


从这章节开始,要慢慢养成——面向对象编程的思维,使用对象进行程序设计。

1、定义通用类

引入——通用类来定义同一类型的对象,一个对象的属性/特征/状态——数据域(变量)表示,一个对象的行为——方法表示。

//UML类图中的表示方法
ClassName(parameterName:parameterType...)
{
    ...
    methodName(parameterName:parameterType):return
}

//定义一个类
public class TestClass {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Circle1 NO1 = new Circle(5);   //使用构造方法创建对象
		Circle1 NO2 = new Circle(3);
		double s1=NO1.getArea(); //调用对象上的实例方法的过程称为调用对象
		NO2.setRadius(10);
		double s2=NO2.getArea();
		System.out.printf("s1=%f,s2=%f",s1,s2);
		System.out.println(" Area is " + new Circle1(50).getArea()); //有时候,一个对象在创建之后并不需要引用。在这种情况下,可以创建一个对象,而并不将它明确地賦值给一个变量。
	}
}

class Circle{
    double radius;
    Circle(){         //无参构造方法(默认)
        radius=1;
    }
    Circle(double newRadius){
         radius = newRadius;
    }
    double getArea(){   //实例方法:因为只能在具体的实例上调用
        return radius*radius*Math.PI;
    }
    void setRadius(double newRadius){
        radius = newRadius;
    }
}

class Student{
    String name;
    int age;
    boolean isSci;
    char gender;
}

2、无引用对象数据的默认值

对于上面程序中申明的String name;     int age;   boolean isSci;    char gender;

如果一个引用类型的数据域没有引用任何对象,引用类型数据域的默认值是rum, 数值类型数据域的默认值是0, boolean 类型数据域的默认值是false, 而char 类型数据域的默认值是’u000'

Student student = new Student();
System.out.println(student.name);
System.out.println(student.age);
System.out.println(student.isSci);
System.out.println(student.gender);

显示的结果是:

null
0
false

3、对象的赋值

我们在创建对象时,使用的语句是:Student student = new Student();简单的说,即:student是一个包含对Student对象引用的变量。对引用类型变量来说,对应内存所存储的值是一个引用,是对象的存储地址。

对于语句:Circle1 C1 = new Circle(5); Circle1 C2 = new Circle(3);

赋值:C2=C1;是将C1的引用赋值给C2,他俩指向了同一个Circle对象C1。原先C2指向的内存空间成为了垃圾,将被java运行系统检测后自动回收(垃圾回收)

4、静态变量、常量、方法

静态变量被类中的所有对象所共享。静态方法不能访问类中的实例成员。

首先,什么是实例/实例变量。Circle1 C1 = new Circle(5);Circle1 C2= new Circle(3); 

C1 C2即是我们创建的两个实例,radius分别等于5和3;radius就是两个实例变量。实例变量是绑定到类的某个特定实例的

如果想让一个类的所有实例共享数据,就要使用静态变量/类变量

若在class Cricle1{...}中增加一个静态变量/静态方法

//静态变量:
static int numberOfObjects; 

//静态方法:
static int numberOfObjects(){
    return numberOfObjects;
}

//静态常量
final static int PI = 3.141592654;

申明为静态量后,该类的所有对象共享其值。

main方法也是静态方法

5、可见修饰符public

可以在方法和数据域前使public修饰符,表示它们可以被任何其他的类访问。

如果没有可见修饰符public,则只能被同一个包(程序第一行申明:package packageName)中的任何一个类访问。

6、private

private : 限定方法和数据域只能在它自己的类中被访问,只能应用在类的成员上。

原文地址:https://www.cnblogs.com/l20902/p/10610951.html