https://blog.csdn.net/crazy_kid_hnf/article/details/55004870
抽象类的特点:
抽象类中至少有一个成员函数是抽象成员函数。
1,抽象方法一定在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建和实例化对象。因为抽象类本身就是不完整的。
4,抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用。
5, 如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
abstract class Student3
{
String studentName=" ";
int studentAge=20;
Student3(String name, int age)
{
studentName=name;
studentAge=age;
}
abstract void print();
}
class StudentA extends Student3
{
StudentA(String name, int age)
{
super(name,age);
}
@Override
void print(){
System.out.println("姓名:"+studentName+" 年龄:"+studentAge);
}
}
class StudentB extends Student3
{
StudentB(String name, int age)
{
super(name,age);
}
@Override
void print()
{
System.out.println("name:"+studentName+" age:"+studentAge);
}
}
public class MyTest{
public static void main(String[] args)
{
Student3 student1=new StudentA("张",20);
Student3 student2=new StudentB("wang",11);
student1.print();
student2.print();
}
}
运行结果:
姓名:张 年龄:20
name:wang age:11
//package for_apro;
//import java.util.*;
//抽象类的声明
abstract class Animal {
String type;
String name;
int age;
int weight;
void eat() {
System.out.println("动物爱吃饭");
}
//抽象方法在抽象类中只能声明,不能具体实现
abstract void breath();
void sleep() {
System.out.println("动物在睡觉");
}
}
//由子类去继承父类抽象类
class tiger extends Animal{
@Override
//在此处实现抽象方法
void breath() {
// TODO Auto-generated method stub
System.out.println("老虎在呼吸");
}
}
public class Main222 {
public static void main(String [] args){
// 错误,程序会报错
//报错原因:抽象类不能进行实例化操作
//Animal Tiger = new Animal();
//只能用子类进行实例化
Animal Tiger = new tiger();
Tiger.breath();
}
}
运行结果:
老虎在呼吸
接口中,所有的成员函数都是抽象成员函数,即接口中所有的成员函数都没有具体的实现方法。
格式:元素类型名 数组名[ ];
数组存储结构:顺序存储(数组名代表首地址)。
例如:
int a[]; //定义
a=new int[4]; //申请内存单元并赋初值
java语言把存放字符串的变量表示为字符数组或字符串对象。例如:
char s[]; //定义字符串变量
String str; //定义一个字符串引用变量
还可以定义String数组,例如:String[] str=new String[3]
import java.util.Scanner;
public class newtest {
public static void main(String[] args)
{
String str1,str2;
char s1[],s2[];
Scanner scanner=new Scanner(System.in);
System.out.println("请输入第一个字符串s1:");
str1=scanner.next();
System.out.println("请输入第二个字符串s2:");
str2=scanner.next();
s1=str1.toCharArray();
s2=str2.toCharArray();
System.out.println(s1);
System.out.println(s2);
System.out.println(str1);
System.out.println(str2);
String str01="Hello";
String str02="Hello world";
System.out.println(str01.equals(str02));
}
}
特点:
1:长度可变;
2:可以放入不同类型的对象。
class Studenttmp{
String studentName="";
public Studenttmp(String name)
{
studentName=name;
}
public String getName()
{
return studentName;
}
}
public class newtest {
public static void main(String[] args)
{
ArrayList list=new ArrayList();
Studenttmp student1=new Studenttmp("Tom");
list.add(student1);
Studenttmp student2=new Studenttmp("小张");
list.add(student2);
System.out.println("ArrayList:"+((Studenttmp)list.get(0)).getName()+","+((Studenttmp)list.get(1)).getName());
}
}
输出结果:
ArrayList:Tom,小张
public class newtest {
public static void main(String[] args)
{
int[] a= {9,8,7,6,5,4,3,2,1};
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
swap(a);
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
static void swap(int[] x)
{
for(int i=0;i<(x.length-1)/2;i++)
{
int t=x[i];
x[i]=x[x.length-1-i];
x[x.length-1-i]=t;
}
}
}
ADT:抽象数据类型
可以描述为:
1)一个值的集合;
2)一个操作的集合。
java有两种方法对ADT进行描述:
1)抽象类声明表示:ADT的实现用继承该抽象类的具体类声明表示。
2)java接口表示:ADT的实现用实现该接口的类表示。