java基础--类与对象(类)

1,类的定义
描述实体的抽象概念,属性及行为相似的对象可以归成一个类。
在软件中,类就是一个模板,它定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。类是创建对象的模板,对象是类的实例。

声明形式
[public] [abstract | final] class 类名称

[extends 父类名称]

[implements 接口名称列表]

{

数据成员声明及初始化;

方法成员声明及方法体;

}

关键字
◦class:表明其后声明的是一个类。
◦extends:如果所声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后
◦implements:如果所声明的类要实现某些接口,那么,接口的名字应写在implements之后
类修饰符
可以有多个,用来限定类的使用方式
◦public:表明此类为公有类
◦abstract:指明此类为抽象类
◦final:指明此类为终结类 
类声明体
◦数据成员声明及初始化
–可以有多个
◦方法成员声明及方法体
–可以有多个
数据成员
◦表示Java类的状态
◦声明数据成员必须给出变量名及其所属的类型,同时还可以指定其他特性
◦在一个类中成员变量名是唯一的
◦数据成员的类型可以是Java中任意的数据类型(基本类型,类,接口,数组)
方法成员
◦定义类的行为
–一个对象能够做的事情
–我们能够从一个对象取得的信息
◦可以没有,也可以有多个;
◦分为实例方法和类方法(静态方法)

类成员的访问控制

public
◦这些成员能被所有的类访问
protected
◦这些成员只能被类本身,派生类或者同一个包下的类访问。
private
◦这些成员除了类本身外任何类不允许访问。
default
◦不加任何访问控制保留字,这些成员只能被类本身或同一个包下的类访问。

2,类的特殊成员

构造方法
◦构造方法的名字和类名相同,并且没有返回值(连void都不允许)。
◦构造方法主要用于为类的对象定义初始化状态。
◦我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实例。
◦Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个缺省的构造方法,也就是不带参数的构造方法。


静态数据成员
◦静态成员以static关键字修饰,如:
◦Class Person{
staticint name;

public static void getName(){……};

}

静态方法和静态变量是属于某一个类,而不属于类的对象,不管对象有多少,静态成员在内存中只存在一份拷贝,所有对象共享同一份静态成员。
静态方法和静态变量的引用可以直接通过类名引用,而不需要经过类的实例化。如:Person.name; Person.getName();
在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。

final数据成员
◦final数据成员类似于C++中的const数据,以及C中宏定义。
◦final数据成员一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。

final方法成员
◦派生类只能从父类继承final方法,但是不能覆盖该final方法。
◦当一个方法提供的功能已经满足要求,不需要再进行扩展,或者不想被子类覆盖时,可以将方法声明为final。package 类;

class Cat{
	//成员变量
	int age;
	String name;
	String color;
	//成员方法
	public void speak(){
		System.out.println("喵");
	}
	public int sum(int num1,int num2){
		System.out.println("num1+num2="+(num1+num2));
		return num1+num2;
	}
	//构造方法
	public Cat(int age,String name,String color){
		this.age=age;
		this.name=name;
		this.color=color;
	}
}
public class Demo1 {
	public static void main(String[] args) {
		Cat cat1=new Cat(1,"小白","白色");
		cat1.speak();
		cat1.sum(1,2);
	}

}
package ;

class People{
	int age;
	String name;
	char sex;
	int money;
	public void sum(int num1,int num2){
		System.out.println("结果是"+(num1+num2));
	}
	public People(int age,String name,char sex){
		this.age=age;
		this.name=name;
		this.sex=sex;
		}
}

public class Demo2 {

	public static void main(String[] args) {
		People people=new People(23,"小红",'女');
		people.sum(12,34);
	}

}

package ;
class A{
	static int i=0;
	static{
		i++;
	}
	public A(){
		i++;
	}
}
public class Demo3 {

	public static void main(String[] args) {
		A c=new A();
		System.out.println(c.i);
	}

}

package ;
class Service{
	int age;
	String name;
	char sex;
	private int money;
	private int tell;
	private String address;
	public Service(int age,String name,char sex,int money,int tell,String address){
		this.age=age;
		this.name=name;
		this.sex=sex;
		this.money=money;
		this.tell=tell;
		this.address=address;
	}
	public int getmoney(){
		return this.money;
	}
}
public class Demo4 {

	public static void main(String[] args) {
		Service ser=new Service(23,"小小",'男',3000,7758521,"China");
		System.out.println(ser.getmoney());
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值