0
点赞
收藏
分享

微信扫一扫

JavaSE_类与对象

妖妖妈 2022-03-23 阅读 61
java

第二章 类与对象

  • 类声明
[public][abstract / final] class类名称[extends 父类名称]
[implements接口名称列表]{
数据成员声明及初始化;
方法声明及方法体;
}   
  • 类数据成员声明
[public|protected|private] [static][ final][transient] [volatile]
数据类型变量名1[=变量初值],变量名2[=变量初值],...;说明

publicprotectedprivate为访问控制符。
static指明这是一个静态成员变量(类变量)。
final指明变量的值不能被修改。
transient指明变量是不需要序列化的。(自动不存盘)
volatile指明变量是一个共享变量。
  • 类方法成员
[public| protected|private] [static][ final][abstract][native][synchrornized]
返回类型 方法名 ([参数列表])[throws exceptionList]{方法体}

publicprotectedprivate 控制访问权限。
static指明这是一个类方法(静态方法)
final指明这是一个终结方法。
abstract指明这是一个抽象方法。
native用来集成java代码和其它语言的代i码。
synchronized用来控制多个并发线程对共享数据的访问。
  • 编译单元
一个Java源代码文件称为一个编译单元,由三部分组成:
所属包的声明(省略则属于默认包,Import(引入)包的声明,用于导入外部的类;类和接口的声明。
一个编译单元中只能有一个public类,该类名与文件名相同,编译单元中的其他类往往是public类的辅助类,经过编译,每个类都会产一个class文件。(一个Java文件就是一个类)
  • 包的声明
package Mypackage;
声明包的语句,必须写在程序有效代码的第一行。
  • 引入包
为了使用其它包中所提供的类,需要使用import语句引入所需要的类。Java编译器为所有程序自动引入包java.lang。
import语句的格式:
import package1[.package2...]. (classname |*);
package1[.package2...]表明包的层次,对应于文件目录;(包名为目录名称)
classname指明所要引入的类名;
如果要引入一个包中的所有类,可以使用星号(*)来代替类名。
  • 引入静态成员
单一引入是指引入某一个指定的静态成员例如: import static  java.lang.Math.PI;
全体引入是指引入类中所有的静态成员,例如: import static  java.lang.Math.*;
  • 函数可变形参
public void show(String ... args) {
for(int i = 0; i < args.length; i ++){ 
System.out.println(args[i]); }}
  • 四种访问修饰符
修饰符同类同包同类及子类任何包-任何类
privateyes---
defaultyesyes--
protectedyesyesyes-
publicyesyesyesyes
  • this关键字
this:指向本类。

circle(double ridus){this.ridus=ridus;}

public BankAccount() {
this("", 999999,0.Of);
}

public BankAccount(String initName, int initAccountNumber) {
this(initName, initAccountNumber, 0.Of);
}

public BankAccount(String initName, int initAccountNumber,float initBalance) {
ownerName = initName;
accountNumber = initAccountNumber;
balance = initBalance;
}
  • final变量初始化
实例变量和类变量都可被声明为final;
final实例变量可以在类中定义时给出初始值,或者在每个构造方法结束之前完成初始化;
final类变量必须在声明的同时初始化。(类变量static修饰)
  • 枚举类
声明枚举类
[public] enum枚举类型名称[implements接口名称列表]{
枚举值;
变量成员声明及初始化;
方法声明及方法体;
}
枚举类的特点:
枚举定义实际上是定义了一个类;
所有枚举类型都隐含继承(扩展)java.lang.Enum,因此枚举类型不能再继承其他任何类;
枚举类型的类体中可以包括方法和变量;
枚举类型的构造方法必须是包内私有的。定义在枚举开头的常量会被自动创建,不能显式地调用枚举类的构造方法。
public enum Planet {
MERCURY (3.303e+23,2.4397e6),
VENUS (4.869e+24,6.0518e6),
EARTH (5.976e+24,6.37814e6),
MARS(6.421e+23,3.3972e6),
JUPITER (1.9e+277.1492e7),
SATURN (5.688e+26,6.0268e7),
URANUS (8.686e+25,2.5559e7),
NEPTUNE (1.024e+26,2.4746e7);

private final double mass;
private final double radius; 
Planet(double mass,double radius){
this.mass = mass;
this.radius = radius;  
}
private double mass() { return mass; }
private double radius() { return radius;}
}
举报

相关推荐

0 条评论