Java 类与面向对象

面向对象

面向对象是一种思考问题的方式,是一种思想。通俗来说就是面向对象不是为了实现每一个步骤,而是描述某个事物在解决中的行为。
是面向对象中最为重要的概念。类就是一类对象的统称,对象就是这一类具体的实例。
基本语法

//创建类
[访问限定修饰符] class  类名{
	field;//成员属性
	method;//成员方法
}
//实例对象
<类名>  <对象名> = new <类名>();

上诉表述中:

  1. 类名的命名规则为“大驼峰
  2. 实例化对象时类名首字母大写。
  3. [访问权限修饰符]是可以省略的。

实例:

class Person {
    public int age;//成员属性 实例变量
    public String name;
    public String sex;
    public void eat() {//成员方法
       System.out.println("eat");  
   }
    public void sleep() {
       System.out.println("睡觉!");  
   }
}
public class Main(){
	public static void main(String[] args){
		Person person = new Person();
		person.eat();//eat
		person.sleep();//睡觉
		
	}
}

类的成员

类的成员包括:属性、方法、代码块等。

属性

成员变量:

1.  普通成员变量public int name; 	
	内存解析:成员变量在堆空间 存入的是地址值
2. 静态成员变量 public static int name;通过类名. 进行访问   Person.information()
	 内存解析:地址存储在方法区

3. 属性描述:
class person{
 		public int age;//成员属性 实例变量
	    public String name;
		public String sex;
}

注意

  1. 类的成员变量定义时,如果没有为其定义赋值,那就认为是一个有一个默认初始化值。
  2. 类的成员变量可以使用 . (点)对其进行访问。
  3. 访问时包括了读,也包括了写。

方法

用于描述一个对象的行为

class Person {

		 public void eat() {//成员方法
   System.out.println("eat");  
}
	   public void sleep() {
   System.out.println("睡觉!");  
 }
}	

成员方法分为:

  1. 静态方法

    静态成员方法 public static void sleep(){}
    
  2. 普通方法

    普通成员方法public void sleep(){}
    
static关键字
1、修饰属性
2、修饰方法
3、代码块

a)修饰属性:java中静态属性和类相关,同一个类不同实例化用静态属性。

class Test{
	public int date;
	public static int sum;
}
public class Main{
	public static void main(String[] args){
			Test t =new Test();
		 t.date++;
       	 t.sum++;
        System.out.println(t.date);//1
        System.out.println(t.sum++);//1
        System.out.println(Test.date);//编译不通过
        System.out.println(Test.sum);//2
	}
}
静态的成员变量 也叫做类变量 不依赖对象,只通过类名就可以进行访问,而普通成员变量不能直接用类名进行调用,调用静态成员时候忽略对象

b)修饰方法

class Test{
	public int date;
	public static int num;
public static void sum(){
	num = 10;
	date = 2;//报错,静态方法不可访问非静态成员
	}
}
public class Main{
	public static void main(String[] args){
			Test.sum();//10
			System.out.println(Test.num)
  1. 静态方法属于类,而不属于类的对象。

  2. 可以直接调用静态方法,而无需创建类的实例。

  3. 静态方法可以访问静态数据成员,并可以更改静态数据成员的值。

    注意:静态方法不能直接使用非静态数据成员或调用非静态方法(非静态数据成员和方法都是和实例相关的).this和super两个关键字不能在静态上下文中使用(this 是当前实例的引用, super是当前实例父类实例的引用, 也是和当前实例相关).
    	  我们曾经写的方法为了简单, 都统一加上了 static. 但实际上一个方法具体要不要带 static, 都需要是情形而定.main 方法为 static 方法.
    
getter和setter方法

当使用private来修饰属性时,就无法直接调用属性,如果我们需要获取或者修改某个private属性时,就需要使用getter方法和setter方法。

class Test{
	private String name;
	private int age;
	public void setName(String name){ 
 			this.name = name;
 } 
	 public String getName(){ 
 			return name; 
 } 
	public static void show(){
		System.out.println("name:"+name+"age:"+age)	;
	}
}
public class Main{
	public static void main(String[] args){
		Person person = new Person(); 
 		person.setName("caocao"); 
 		String name = person.getName(); 
 		System.out.println(name); 
 		person.show(); 
} 
//运行结果为:caocao 
			 name:caocao age:0

  1. getName 即为 getter 方法, 表示获取这个成员的值。
  2. setName 即为 setter 方法, 表示设置这个成员的值。
  3. 当set方法的形参名字和类中的成员属性的名字一样的时候,如果不使用this, 相当于自赋值. this 表示当前实例的引用。
构造方法

使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作。

使用规则

  1. 方法名必须与类名相同
  2. 每个类中至少有一个构造方法(系统生成无参构造器)
  3. 构造方法声明带参构造器需要将成员属性加载进去,并且进行this.的当前对象引用
class Test{
 	public int age;
    public String name;
    public String sex;
	public Test(){//无参
}
	public Test(int age,String name,Stirng sex){
		this.age = age;
		this.name = name;
		this.sex =sex;
}
	}
其中带参构造器与无参构造器就构成了重载
代码块

代码块分为:

  1. 实例代码块(构造代码块){}:初始化实例数据成员

  2. 静态代码块static{} 初始化静态数据 (不管生成多少的对象,只会执行一次,并且是最先执行)

  3. 本地代码块:方法内部的代码块

    先执行静态代码块(只执行一次),再执行示例代码块  ,最后执行构造器
    
匿名类对象

没有引用的对象称为匿名对象,只能在创建对象时使用并且一个对象只用一次。

class Test{
	private String name;
	private int age;
	=public Test(int age,String name,Stirng sex){
		this.age = age;
		this.name = name;
		this.sex =sex;
}
	
	public static void show(){
		System.out.println("name:"+name+"age:"+age)	;
	}
}
public class Main{
	public static void main(String[] args){
		//匿名对象调用方法
		new Person(19,"GuiYee",).show();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值