8.1面向对象
8.2类
class person{
//人具有age属性
int age;
//人具有name属性
String name;
//人具有shut方法
void shut()
{
System.out.println("My name is"+name);
}
public static void main(String[] args)
{//类及类属性和方法的使用
person Tom=new person
Tom,age=27;
Tom.name="TOM";
Tom.shut();
}
定义类的语法格式:
[修饰符] class 类名
{
零个到多个构造器的定义..
零个到多个属性..
零个到多个方法..
}
属性:有时被称之为字段,用于定义该类或该类的实例所包含的数据。
语法格式:
[修饰符] 属性类型属性名 [=默认值]
说明:
- 修饰符:可以省略,可以是public、protected、private、static、final。其中public、protected、private最多只能出现其中之一,可以与static、final组合起来修饰属性。
方法:用于定义该类或该类的实例的行为特征或功能实现。
语法格式:
[修饰符] 方法返回值类型方法名 [=形参列表];
{
由零条或多条可执行语句组成的方法体
}
用最多的:public static void main(String args[]){}
说明:
- 修饰符:可以省略,可以是public、protected、private、static、final、abstract。其中public、protected、private最多只能出现其中之一;inal、abstract最多只能出现其中之一.可以与static组合起来修饰属性。
例子:定义两个方法
//定义一个无返回值的方法
public void cheng()
{
System.out.println("我已经长大”);
}
//定义一个有返回值的方法
public int Da()
{
int a=100;
return a;
}
构造器:用于构造该类的实例,java语言通常用new来调用过构造器,从而返回该类的实例。
语法格式:
[修饰符] 构造器名 (形参列表)
{
由零条或多条可执行语句组成的构造器本体
}
说明:
- 修饰符:可以省略,可以是public、protected、private其中之一。
8.3修饰符
- public修饰符
如果将属性和方法定义为public类型,那么此属性和方法所在的类及其子类,同一个包中的类,不同包中的类都可以访问这些属性和方法。
例如:
class textone
{
public int a;
public void print()
{
System.out.println("歼20飞行里程可达"+a+"公里");
}
}
public class leitwo {
public static void main(String[] args)
{
textone aa=new textone();
aa.a=8000;
aa.print();
}
}
类leitwo可以随意访问textone中的方法和属性。
- private修饰符
如果将属性和方法定义为private类型,那么此属性和方法只能在自己的子类中被访问,其他类不能被访问。
例如:
public class leitwo3 {
private String uname;
private int uid;
public String getuname()
{
return uname;
}
private int getuid()
{
return uid;
}
//下面是定义一个构造方法leitwo3
public leitwo3(String uname,int uid)
{
this.uname=uname;
this.uid=uid;
}
public static void main(String args[])
{
leitwo3 PrivateUse1=new leitwo3("糖糖",21002);
leitwo3 PrivateUse2=new leitwo3("古古",61002);
String a1=PrivateUse1.getuname();
System.out.println("姓名:"+a1);
int a2=PrivateUse1.getuid();
System.out.println("学号:"+a2);
String a3=PrivateUse2.getuname();
System.out.println("姓名:"+a3);
int a4=PrivateUse2.getuid();
System.out.println("学号:"+a4);
}
}
3.** protected修饰符**
如果将属性和方法定义为protected类型,那么此属性和方法只能在自己的子类和类中被访问。
例如:
public class leitwo4 {
protected int a;
protected void print()
{
System.out.println(a+"年");
}
public static void main(String args[])
{
System.out.println("歼20的年份是:");
leitwo4 a1=new leitwo4();
a1.a=2017;
a1.print();
System.out.println("歼20战斗年份是:");
leitwo4 a2=new leitwo4();
a2.a=2018;
a2.print();
}
}
- 其他修饰符
默认修饰符:没有指定修饰符,则表示使用默认修饰符。变量和方法只能在自己的类及该类同一个包下的类中访问。
static:被static修饰的变量为静态变量,被static修饰的方法为静态方法。
final:被final修饰的变量在程序执行过程中最多赋一次值,经常用于常量。
transient:只能修饰非静态的变量。
volatile:和transient一样,只能修饰非静态的变量。
abstract:被abstract修饰的成员称作抽象方法。