7月21日Objiect的常用类本人为新手正在学习Java中把每天学的东西晚上都会在博客记录希望大神可以指点 不足在此谢过。

Objiect类中的常用方法、

objiect类是所有类的根类,他定义了所有对象都具备的功能。

内部类

一个源文件可以有多各类,但是public修饰的类之多有一个,而且Java源文件的名称必须和public修饰的类的名称一致

内部类是指在类的里面定义的类

内部类可以用任意字符来修饰

内部类创建实例:

package com.inner;
/*一个java源文件可以有任意多个类,但是public修饰的类
至多有一个,而且java源文件名称必须和public修饰的类
的名称一致*/
class Base1{}


class Sub extends Base1{}


public class Outer {
//内部类是指在类的里面定义的类
//内部类可以用任意的访问权限修饰符来修饰
private int a = 1;
static int b = 2;
class Inner{
//只希望类本身可以调用的类,不希望其他类访问,
//可以把这个类定义为内部类
int a = 2;
public void show(){
int a = 3;
System.out.println(a + "-->"
+ this.a + "-->" + Outer.this.a);
}
}


private void product(){
//局部内部类
class A{}
}

static class SecondInner{
//静态内部类不能访问非静态的属性
public void show(){
System.out.println(b);
}
}

public static void test(){
Inner inner = new Outer().new Inner();
inner.show();
}

public static void main(String[] args) {
test();
}
}package com.inner;


import com.inner.Outer.Inner;
import com.inner.Outer.SecondInner;


public class Test {


public static void main(String[] args) {
Base1 base = new Base1();
//内部类的实例严格依赖于外部类的实例
Inner inner = new Outer().new Inner();
/*Outer outer =new Outer();
Inner inner = outer.new Inner();*/
//创建静态内部类
SecondInner secondInner = new SecondInner();
}


}

package com.inner;


//匿名内部类是只使用一次的类,父类一般是抽象类和接口


abstract class Base{
abstract void show();
}


interface Father{
//接口没有构造器
void say();
}




public class AnonymousDemo {
public static void main(String[] args) {
// 创建一个匿名内部类
new Base() {
@Override
void show() {
//只使用一次的匿名内部类
}
};
new Father() {
@Override
public void say() {
//匿名内部类的创建需要借助一个抽象类或者
//接口作为父类
}
};


}


}

静态内部类可以包含静态成员,也可以包含非静态成员,所以所以静态内部类不能访问外部类的实例成员只能访问外部类的类成员;

静态内部类对象寄存在外部类里,非静态内部类的对象寄存在外部类实例里

局部内部类 

如果把一个内部类定义在方法中,这就是局部内部类,仅仅在方法中有效

局部内部类不能在外部类以外的地方使用,局部内部类也不能用访问控制符和static修饰

匿名内部类

匿名内部类的创建需要借助一个抽象类或者接口作为父类、

手动执行枚举类

实现枚举类要实现构造器私有化

所有的属性尽量用public static final 来修饰

package com.enumdemo;


//枚举指类的对象是确定的
public class Season {
//自定义枚举类需要把构造器私有化
String name;
private Season(String name){
this.name = name;
}
//所有的属性尽量用public、static、final来修饰
public static final Season SPRING = new Season("春天");
public static final Season SUMMER = new Season("夏天");
public static final Season FALL = new Season("秋天");
public static final Season WINTER = new Season("冬天");
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
package com.enumdemo;


public enum MySeason {
    //第一行必须写此枚举类的所有对象
SPRING("春天"),SUMMER("夏天"),FALL("秋天"),WINTER("冬天");
String name;
private MySeason(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}

package com.enumdemo;


public class Test {


/**
* @param args
*/
public static void main(String[] args) {
// Season spring = Season.SPRING;
/*MySeason chun = MySeason.SPRING;
System.out.println(chun.getName());*/
/*MySeason[] seasons = MySeason.values();
for (int i = 0; i < seasons.length; i++) {
System.out.println(seasons[i].getName());
}*/
/*MySeason chun = MySeason.SPRING;
MySeason xia = Enum.valueOf(MySeason.class, "SUMMER");
System.out.println(xia.getName());*/
}


}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值