类与对象
类是对某一对象的描述,是抽象的。对象是实际存在的属该类事务的具体个体。也叫实例。一个类可以有多个实例。类是由数据成员和函数成员封装成的,数据成员代表类的属性,函数成员代表类的行为。
类修饰符:属于一组限定类、成员变量,成员方法是否可以被程序里的其他部分访问和被调用的控制符。
- public 将一个类声明为公共类,他可以被任意对象访问
- abstract 将一个类声明为抽象类,没有实现方法。需要子类提供方法的实现,所以不能创建该类的实例
- final 将一个类声明为最终类即非继承类,表示它不能被其他类所继承
- 缺省 缺省修饰符时,则表示只有在相同包中的对象才能使用这样的类。 ##### ==一个类可以有多个修饰符,且无先后顺序之分,但abstract和final相互对立,所以不能同时应用在一个类的定义当中== ##### 成员变量的格式: 【修饰符】变量类型变量名【=初值】例如:private double pi=3.14; 成员变量的修饰符以及含义:
- public 公共访问控制符。指定该变量为公共的,他可以被任何对象的方法访问
- private 私有访问控制符。指定该变量只允许自己类的方法访问,其他任何类(包括子类)中的方法均不能访问此变量。
- protected 保护访问控制符。指定该变量只可以被它自己的类及其子类或在同一个包中的其他类访问,在子类中可以覆盖此变量。
- 缺省 缺省访问控制符时,则表示在同一个包中的其他类可以访问此成员变量,其他包的不能。
- final 最终修饰符,指定此变量的值不能改变
- static 静态修饰符 指定该变量被所有对象共享,即所有的实例都可以适用该变量。
- transient 过渡修饰符,指定该变量是一个系统保留,暂无特别作用的临时变量
- volatile 易失修饰符。指定该变量可以同时被几个线程控制和修改。 ##### 成员方法修饰符(这里只解释几个特别的)
- public
- private
- protect
- 缺省
- final
- static
- abstract
- synchronized 同步修饰符。在多线程程序中,该修饰符用于对同步资源加锁。以防止其他线程访问。运行结束后解锁
- native 本地修饰符,指定该方法的方法体是用其他语言(如:C语言)在程序外部编写的。 ##### 成员变量与局部变量的区别 成员变量:类中定义的变量 局部变量:方法中定义的变量 ##### ==区别:== 1.成员变量可以被public private static等修饰符所修饰,而局部变量则不能被访问控制修饰符及static所修饰:成员变量和局部变量都可以被final所修饰 2.从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存放在堆内存中,局部变量是存放在栈内存当中。 3.从变量在内存中生存时间来看:==成员变量是对象的一部分==,它随着对象的创建而存在。而局部变量随着方法的调用而存在,随着方法调用的结束而消失。 4.成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被final修饰但是没有被static修饰的成员变量必须显式的赋值);局部变量不会自动赋值。必须显式赋值后才能使用。 写组代码消化一下:
public class App6_1 { public static void main(String[] args){ Cylinder vole = new Cylinder(); vole.radius=2.8; vole.height=5; System.out.println("底面半径="+vole.radius); System.out.println("圆柱的高="+vole.height); vole.area(); vole.volume(); } } class Cylinder{ double radius; int height; double pi=3.14; void area(){ System.out.println("底面积="+pi*radius*radius); } void volume(){ System.out.println("体积="+(pi*radius*radius)*height); } }
如果出现找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application这种错误.
解决方法:左上角全部保存或者ctrl+s;