欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

JAVA类和对象,

来源: javaer 分享于  点击 4377 次 点评:174

JAVA类和对象,


Java类有如下作用:
定义变量
创建对象
调用类的类方法和访问类的类变量
1. 定义类
 [修饰符] class 类名
{
 构造器
 成员变量
 方法
}
如:public class Person{}

1.构造器
构造器是一个类创建对象的根本途径,系统会创建默认的构造器
[修饰符] 构造器名(形参列表)
注:构造器名与类名相同,不能定义返回值类型
如:
 public Person(String name, int age)
{
  this.name = name;
  this.age = age;
}

  1. 定义成员变量
    [修饰符] 类型 成员变量名
    如:public int age

3.定义方法
[修饰符] 方法返回值类型 方法名(形参列表)
如:public void say(String content){}

定义一个person类

public class Person
{
	public String name; //定义成员变量
	public int age;
	public Person(String name, int age)  //自定义构造器
    {
        this.name = name;
        this.age = age;
    }
	public void say(String content) //定义方法
	{
	  System.out.println(content);
	 }
}

2.对象的产生和使用
创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器可以创建这个类的实例。

Person p; //定义一个Person类型的变量
p=new Person();

也可以简化为:
Person p=new Person();

Java对象的作用有:
1、访问对象的实例变量
2、调用对象的方法

p.name=“TOM”;//访问对象的实例变量
p.say("今天是2019年2月10日");//调用对象的方法

3.对象的this引用
this关键字指向调用该方法的对象
this关键字最大的作用是让类中的一个方法,访问该类中的另一个方法或实例变量。
如:一个dog类的run方法中需要借助jump方法

//定义一个run()方法,run()方法需要借助jump()方法
public void run()
{
	this.jump();
}

java允许一个成员直接调用另一个成员,可以省略this前缀

public void run()
{
	jump();
}

注:static修饰的方法不能使用this引用。

this引用在构造器中可以作为默认引用,this在构造器中代表该构造器正在初始化的对象

public class Person
{
	public int age;
	public Person()
  {
    int age=0;
    this.age=6;
  }
}

方法详解
JAVA中的方法不能独立存在,必须属于一个类或者一个对象。所有方法必须使用“类.方法”来调用。

方法的参数传递机制
JAVA的参数传递方式是值传递。值传递就是将实际参数值的副本传入方法内,而参数本身不会受到任何影响。

成员变量和实例变量
成员变量被分为类变量和实例变量,没有static修饰的是实例变量,有static修饰是类变量。类变量理解为类成员变量,它与类共存亡。实例变量与实例共存亡。

局部变量
形参:在定义方法签名时定义的局部变量,形参的作用域在整个方法内有效。
方法局部变量:在方法体内定义的局部变量,作用域从定义该变量的地方生效,到该方法结束时失效。
代码块局部变量:在代码块中定义的局部变量,这个局部变量的作用域从定义该变量的地方生效,到该代码块结束时失效。
局部变量除形参外,必须指定初始值,否则不可以访问他们。

隐藏和封装
对于一个类或者对象实现良好的封装,可以实现:
隐藏类的实现细节。
让使用者只能通过预先设定的方法来访问数据,限制对成员变量的不合理访问。
可进行数据检查,有利于保证对象信息的完整性。
提高代码的可维护性。
JAVA提供了3个访问控制符:private、protect和public

public class Person
{
	//将成员变量隐藏起来
	private String name;
	private int age;
	public void setName(String name)
	{
		this.name=name;
	}
	public Sring getName()
	{
		return this.name=name;
	}
	public void setAge(int age)
	{
		this.age=age;
	}
	public int getAge()
	{
		return this.age;
	}
}

JAVA的包
JAVA的包提供了类的多层命名空间,用于解决类的命名冲突、类文件管理等问题。

深入构造器
构造器最大的作用是在创建对象的时候执行初始化。当创建一个对象时,系统会为这个对象的实例变量进行默认初始化,把所有基本类型的实例变量设为0,把所有引用类型的实例变量设为NULL。
也可以自定义构造器,对实例变量进行自定义的初始化操作。

public class ConstructorTest
{
	public String name;
	public int count;
	public ConstructorTest(String name,int count)
	{
		this.name=name;
		this.count=count;
	}
	public static void main(String[] args)
	{
		ConstructorTest tc=new ConstructorTest("小明”,1000);
		System.out.println(tc.name);
		System.out.println(tc.count);
	}
}

通常把构造器设置为public访问权限,允许系统中任何位置的类来创建该类的对象。

类的继承
JAVA的继承通过extends作为继承的关键字,实现继承的类被称为子类,被继承的类称为父类。
下面是Fruit类的子类Apple类

public class Fruit
{
	public double weight;
	public void info()
	{
		system.out.println("水果“);
	}
}
public class Apple extends Fruit
{
	public static void main(Strings[] args)
	{
		Apple a=new apple;
		a.weight=56;
		a.info();
	}
}

Apple是一个空类,但在继承Fruit类后可以访问apple对象的weigh实例和info方法。
每个JAVA类只能有一个直接父类。
重写父类的方法
子类与父类的方法同名的现象被称为方法重写。如果需要在子类方法中调用父类覆盖的实例方法,可以用super限定来调用父类被覆盖的实例方法。
调用父类构造器
子类不会获得父类的构造器,但是可以调用父类构造器的初始化代码。

public class Fruit
{
	public double weight;
	public Fruit(double weight)
	{
		this.weight=weight;
	}
}
public class Apple extends Fruit
{
	public String color;
	public Apple (double weight,String color)
	{
		super(weight);
		this.color=color;
	}
	public static void main(Strings[] args)
	{
		Apple a=new apple(5.6,"红色”);
	}
}

相关文章

    暂无相关文章
相关栏目:

用户点评