Java小记 类相关


Object常用方法:

  • toString() 将一个对象返回为字符串形式
  • getClass()
  • getClass().getname()

重写toString

class A{
	public String(){
		return "Hello!  Class name is: " + getClass().getName() + "  __";
	}
}

class B{
	public static void main(String[] args){
		System.out.print(new A());
	}
}
>> Hello!  Class name is: A    ___

抽象类

  • 关键字 abstract
abstract class A{
	abstract void doit();
}
  • 抽象类除了被继承没有其他意义
  • 抽象方法没有方法体

接口

  • interface ---- 定义接口
  • implements ---- 使用接口
public interface doit{
	public void doo();
	abstract int dodo();
}

public class A implements doit{
	public void doo(){
		// do something
	}
	int dodo(int a){
		return a+12;
	}
}
  • 接口中的方法必须是 public or abstract
  • 接口中的方法都没有方法体
  • 定义的任何字段都自动 static & finall
  • 同一类可以同时使用多个接口
  • 使用接口后必须实现(覆盖)接口的方法
class A extends JFrame implements intf1,intf2{
	...
	...
	...
}


  • package 包名 ---- 定义【必须在第一非注释行】
  • import 包名.类名 ---- 引用
> src
 > one
  > tada
   - lala.java
  - ClassOne.java
 - ClassA.java
 - ClassB.java

ClassOne.java

package one

public class ClassOne{
	...
}

lala.java

package one.tada

public class lala{
	one.ClassOne ooh = new one.ClassOne();   // 划重点
	/*
	* 或者:
	* import one.*
	* ClassOne ooh = new ClassOne();
	*/
	...
}
  • 指定包名后,包名称为类名的一部分

导入包

import

import java.util.*; ---- 引用包中的全部 *
import java.text.DecimalFormat; ---- 单独引用
import one.tada.*;

引用静态成员方法
import static java.lang.System.out;

import static java.lang.System.out;
class A{
	public static void main(String[] args){
		out.println("hello world");
	}
}

final 变量、方法

  • final出现位置
class ClassA{
	final double PI; // 成员变量
	public ClassA(){
		PI = 3.14;  // 可在构造方法赋值
	}
	
	void doit(final int a){ // 参数【不可改变】
		...
	}
	
	void tada(){
		final ONE = 1; //局部变量
	}
}
  • 父类中的final方法,子类只能调用,不能重写。
  • final类不能被继承。

内部类、局部内部类、匿名内部类

  • 内部类
class classA{
	int x=10;
	class classB{
		int x=12;
		void doit(int x){
			int x_ = x++; // 参数 x
			this.x++; // 局部类 x
			classA.this.x--; // 外部类 x
		}
	}

	classB mkclassB(){
		return new classB();
	}
}

class Lala{
	// 实例化 内部类
	classA a = new classA();
	classB b = a.new classB();
	classB bb = a.mkclassB();
}

  • 局部内部类
class classA{
	void doit(final String s){
		class inner{
			int id;
			String str = s;
		}
	}
}
  • 方法外部不能访问该类
  • 如果需要在方法体中使用局部变量,需要设置局部变量为final

  • 匿名内部类
interface itfc{
}

class A{
	public itfc doit(){
		return new itfc(){
			private int id = 12;
			public int GetId(){
				return id;
			}
		}
	}
}

静态内部类

public class A{
	int a = 12;
	static class Inner{
		void doit(){};
	}
}
  • 创建对象时不需要外部类对象。
  • 不能从其对象访问非静态外部类的对象。

: 可以将主方法写进静态内部类。

内部类继承

class A{
	class B{
	}
}

class Test extends A.B{
	public Test(A a){
		a.super();
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的壳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值