成員內(nèi)部類實戰(zhàn)
//成員內(nèi)部類
class exercise{
public static void main(String[] args) {
Animal.Heart at = new Animal().new Heart();//訪問成員內(nèi)部類
at.move();//方法
}
}
class Animal{//動物外部類
int a = 100;
class Heart{//心臟內(nèi)部類
public void move() {//成員內(nèi)部類方法
System.out.println("動物的心臟在跳動"+Animal.this.a);//訪問外部類
}
}
}
接口實戰(zhàn)(帶橡皮的鉛筆)
package com.llhc;
public class QuickSort {
public static void main(String[] args) {
PencilEraser p = new PencilEraser();
p.writer();
p.wipe();
}
}
class Pencil{
public void writer(){
System.out.println("具備寫的功能");
}
}
interface Eraser{
public void wipe();
}
class PencilEraser extends Pencil implements Eraser{
public void wipe(){
System.out.println("具備擦除功能");
}
}
接口實戰(zhàn)(會賺錢的學(xué)生)
package com.llhc;
public class QuickSort {
public static void main(String[] args) {
StudentStudyMoney ssm = new StudentStudyMoney("張三");
ssm.studentStudy();
ssm.studentMoney();
}
}
class Study{
String name;
public Study(String name){
this.name=name;
}
public void studentStudy(){
System.out.println(name+"學(xué)習(xí)很好Q蛞肌!!");
}
}
interface Money{
public void studentMoney();
}
class StudentStudyMoney extends Study implements Money{
public StudentStudyMoney(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void studentMoney() {
System.out.println(name+"也很會賺錢");
}
}
封裝實戰(zhàn)(封裝公共屬性)
class Exercise{
public static void main(String[] args){
Net n = new Net();
n.setId(100);//調(diào)用set屬性名
System.out.println("ID"+n.getId());//調(diào)用get屬性名
n.user();
}
}
class Net{//某網(wǎng)
int tel;//電話
String name;//名字
private int id;//用private封裝id
//set屬性名
public void setId(int ids){
if(ids>=18){//id不可以大于18
id=18;
}else{
id=ids;
}
}
//get屬性名
public int getId(){//獲取id
return id;
}
public void user(){
System.out.println("封裝");
}
}
封裝實戰(zhàn)(計算器)
/*計算器
具備兩個操作數(shù),一個操作符,具備計算功能爷辱。
操作數(shù)和操作符要封裝
*/
class Exercise{
public static void main(String[] args){
Calculator c = new Calculator();//調(diào)用類
c.setCalculator(45,2,'*');//調(diào)用set+類方法
c.Arithmetic();//調(diào)用運算方法
}
}
class Calculator{//計算器
private int num1;//操作數(shù)1
private int num2;//操作數(shù)2
private char operator;//操作符
//如果要同時封裝多個屬性,調(diào)用“set+類名”的方法。
public void setCalculator(int num1,int num2,char operator){//多屬性同時封裝
this.num1=num1;//初始化
this.num2=num2;//初始化
this.operator=operator;//初始化
if(operator=='+'||operator=='-'||operator=='*'||operator=='/'){//如果是這4個符號
this.operator=operator;//就返回給成員屬性
}else{
this.operator='+';//否則就把‘+’返回
}
}
public void Arithmetic(){//運算方法
if(operator=='+'){
System.out.println("結(jié)果:"+(num1+num2));
}else if(operator=='-'){
System.out.println("結(jié)果:"+(num1-num2));
}else if(operator=='*'){
System.out.println("結(jié)果:"+(num1*num2));
}else if(operator=='/'){
System.out.println("結(jié)果:"+(num1/num2));
}
}
}
接口多態(tài)
class exercise{
public static void main(String[] args) {
Study s = new Student();//接口多態(tài):接口 變量名 = new 接口實現(xiàn)類
s.read();
s.made();
}
}
interface Study{//接口
public void read();
public void made();
}
class Student implements Study{//實現(xiàn)接口
public void read() {
System.out.println("閱讀");
}
public void made() {
System.out.println("玩耍");
}
}
局部內(nèi)部類
//局部內(nèi)部類
class exercise{
public static void main(String[] args) {
Outer o = new Outer();//調(diào)用外部類
o.run();//調(diào)用方法
}
}
class Outer{
public void run() {
final int i = 100;//用final修飾
class Inner{//內(nèi)部類
public void head() {
System.out.println(i);//訪問變量
}
}
Inner innwe = new Inner();//創(chuàng)建內(nèi)部類對象
innwe.head();//調(diào)用內(nèi)部類方法
}
}
匿名內(nèi)部類
//匿名內(nèi)部類
class exercise{
public static void main(String[] args) {
Outer o = new Outer();
o.print();
}
}
abstract class Animal{//抽象類
public abstract void run();
}
class Outer{//外部類
public void print() {//成員方法
new Animal() {//匿名內(nèi)部類
public void run() {//實現(xiàn)抽象方法
System.out.println("實現(xiàn)抽象方法");
}
}.run();
}
}
重寫(學(xué)生培訓(xùn))
/*
需求:使用java描述一下普通的學(xué)生蚪战、java基礎(chǔ)班的學(xué)生、就業(yè)班的學(xué)生
學(xué)生都會學(xué)習(xí)恤煞,學(xué)的內(nèi)容不一樣屎勘。
普通的學(xué)生:馬克思主義
基礎(chǔ)班的學(xué)生:javase
就業(yè)班的學(xué)生:javaee+android
*/
class exercise{
public static void main(String[] args){
new Student();
commonStudent c = new commonStudent();
c.content();
basicsStudent b = new basicsStudent();
b.content();
employmentStudent e = new employmentStudent();
e.content();
}
}
class Student{//學(xué)生
public Student() {//構(gòu)造函數(shù)
System.out.println("學(xué)生會學(xué)習(xí)");
}
public void content() {//方法
System.out.println();
}
}
class commonStudent extends Student{//普通學(xué)生
public void content() {//重寫方法
System.out.println("學(xué)習(xí)馬克思主義");
}
}
class basicsStudent extends Student{//基礎(chǔ)班學(xué)生
public void content() {//重寫方法
System.out.println("javase");
}
}
class employmentStudent extends Student{//就業(yè)班學(xué)生
public void content() {//重寫方法
System.out.println("javaee+android");
}
}
強制多態(tài)
class exercise{
public static void main(String[] args) {
Animal a = new Mouse("老鼠");//多態(tài)
a.run();
Animal f = new Fish("魚");//多態(tài)
Fish y = (Fish)f;//強制類型轉(zhuǎn)換
f.run();//調(diào)用方法
y.dig();//調(diào)用子類特有方法
print(f);//參數(shù)為f是魚類,為a是老鼠,為y是調(diào)用子類特有方法
}
//題目:定義一個函數(shù)可以接收任意的動物對象(利用多態(tài))
public static void print(Animal f) {//Animal f = new Fish("魚");
Fish y = (Fish)f;//強制類型轉(zhuǎn)換
f.run();//調(diào)用方法
}
}
abstract class Animal{//父類 動物
String name;
public Animal(String name){
this.name=name;
}
public abstract void run();//跑的抽象類
}
class Mouse extends Animal{//子類老鼠
public Mouse(String name){
super(name);
}
public void run() {
System.out.println(name+"四條腿跑");//實現(xiàn)父類
}
}
class Fish extends Animal{//子類魚
public Fish(String name) {
super(name);
}
public void run() {
System.out.println(name+"慢慢的游");//實現(xiàn)父類
}
public void dig() {//子類特有方法
System.out.println("我是子類特有方法");
}
}
抽象類(圖形)
class exercise
{
public static void main(String[] args)
{
Roundness r = new Roundness(3,"圓形的");
r.area();
r.perimeter();
Orthogon o = new Orthogon(2,3,"矩形的");
o.area();
o.perimeter();
}
}
abstract class Graph//圖形
{
String name;
public Graph(String name){
this.name=name;
}
public abstract void perimeter();
public abstract void area();
}
class Roundness extends Graph//圓形
{
public static final double PI = 3.14;
int r;
public Roundness(int r,String name){
super(name);
this.r=r;
}
public void area(){//面積
System.out.println(name+"面積:"+(PI*r*r));
}
public void perimeter(){
System.out.println(name+"周長:"+(2*PI*r));
}
}
class Orthogon extends Graph//矩形
{
int length;
int width;
public Orthogon(int length,int width,String name){
super(name);
this.length=length;
this.width=width;
}
public void area(){
System.out.println(name+"面積"+(length*width));
}
public void perimeter(){
System.out.println(name+"周長"+(2*(length+width)));
}
}
面向?qū)ο?/p>
class Exercise{
public static void main(String[] args){
Car c = new Car();//調(diào)用車對象
c.wheel=0;//具體輪子
c.name="寶馬";//具體名字
c.color="白色";//具體顏色
System.out.println("name"+c.name+"wheel"+c.wheel+"color"+c.color);
c.run();
CarRepair r = new CarRepair();//調(diào)用修車廠對象
r.repair(c);//調(diào)用修車
c.run();//跑
}
}
class Car{//車是抽象的事物
int wheel;//用整形描述輪子
String name;//描述名字
String color;//描述顏色
public void run(){//用方法描述公共行為
if(wheel==4){
System.out.println("車子跑");
}else{
System.out.println("馬上送到修車廠");
}
}
}
//修車廠
class CarRepair{
String name;
public void repair(Car c){//修理車
if(c.wheel==4){
System.out.println("修理完畢");
}else{
System.out.println("補好輪胎");
c.wheel=4;//補輪胎
}
}
}