七.Java基础,适合小白入门----------Java语言基础阶段之类和对象


Java语言是面向对象的语言,因而一定要掌握类和对象的使用。面向对象的三个重要特征 (封装性,继承性,多态性)
封装性:使数据和加工该数据的方法封装成一个整体
其目的在于把对象的设计者和使用者分开
继承性:继承性是子类共享其父类数据和方法的机制。
继承分为单继承和多重继承。继承具有传递性。
多态性
对象=数据+方法
程序=对象+消息传递

将具有相同属性及相同行为的一组对象称为类(class)。
JAVA中类被认为是一种抽象的数据类型,不但都数据,还有。类是抽象的概念,因此必须用类创建出对象。

类的声明与定义

[标识符] class 类名称
{
类的成员变量
类的方法
}

JAVA访问权限(修饰符)

默认(default)

不加任何访问修饰符
这类方式声明的方法和类只允许在同一个包内访问

私有(private)

方法/变量/构造方法被声明为私有时,尽在类内可以被访问
类/接口不能被声明为私有

共有(public)

类/接口/方法/构造被声明为公有时,可以跨类,跨包访问
跨包访问时,只需要事先导入包就行

保护(protected)

变量/方法/构造方法被声明为保护时,可以在本类和子类中访问(即使是在不同的包内)
类/接口不能声明为保护类

final

类被声明为final不允许被继承,类实现的细节不允许修改

类的属性

属性(field)的定义

类的属性是变量

[修饰符] 属性类型 属性名[=默认值]
属性的使用
package study_JAVA;

import java.util.Random;

/**
 * @author 86152
 *练习,二维数组
 */
public class demo {
	static String a="string-a";
	static String b;           //静态,属于类,对象看到的属性值相同
	String c="string-c";
	String d;                  //非静态,属于类私有,属性值可不同
	static 
	{
		printStatic("before static");
		b="string-b";
		printStatic("after static");//初始化静态成员变量
	}
	public static void printStatic(String title)
	{
		System.out.println("-------"+title+"--------");
		System.out.println("a=\""+a+"\"");
		System.out.println("b=\""+b+"\"");
		
	}
	public demo()                        //构造方法
	{
		print("before constructor");
		d="string-d";
		print("after constructor");
	}
	public void print(String title)       //公有方法
	{
		System.out.println("-------"+title+"---------");
		System.out.println("a=\""+a+"\"");
		System.out.println("b=\""+b+"\"");
		System.out.println("c=\""+c+"\"");
		System.out.println("d=\""+d+"\"");
	}

	public static void main(String args[])
	{
		
			System.out.println();
			System.out.println("-------创建usingAttribute对象---------");
			System.out.println();
			new demo();                 //使用关键字new和构造方法创建一个匿名对象
		}
	
	}

在这里插入图片描述

对象

类实例化的产物
在JAVA中,“一切皆对象”
形象化的说,类是“树叶”,对象是“松树叶”,“柳树叶”。。。
它们都是树叶但它们的属性(大小,形状,颜色都不相同)

对象的声明和使用

类名 对象名=new 类名();

“栈内存”和”堆内存“
护士登记表相当于栈内存
育婴房相当于:堆内存
只有堆内存没有栈内存的对象是匿名对象

package study_JAVA;

import java.util.Random;

/**
 * @author 86152
 *练习,匿名对象
 */
public class demo {
	
	public void talk()
	{
		System.out.print("匿名对象");
	}
	public static void main(String args[])
	{
				new demo().talk();
	}
}

在这里插入图片描述
匿名对象
1.没有栈内存指向
2.只能使用一次,之后会被垃圾回收器收回

对象的使用

对象名.属性名
对象名.方法名()

对象的比较

1.利用==运算符
用于比较两个对象的 内存地址值
2.利用equals()方法
比较 两个对象的内容是否一致

  package study_JAVA;

import java.util.Random;

/**
 * @author 86152
 *练习,==和equal的区别
 */
public class demo {
	
	public static void main(String args[])
	{
		String str1=new String("java");
		String str2=new String("java");
		String str3=str2;
		if(str1==str2)
		{
			System.out.println("str1==str2\n");
		}
		else
		{
			System.out.println("str1!=str2\n");
		}
		if(str2==str3)
		{
			System.out.println("str2==str3\n");
		}
		else
		{
			System.out.println("str2!=str3\n");
		}
		if(str1.equals(str2))
		{
			System.out.println("str1==str2\n");
		}
		else
		{
			System.out.println("str1!=str2\n");
		}
	
	}
}

对象数组的使用

数组不仅能用来存储基本数据类型,也能用来存储对象

当创建一个对象时,Java虚拟机(JVM)就会给对象分配一个自身的引用–this。因此静态属性和静态方法没有this.

package study_JAVA;

import java.util.Random;

/**
 * @author 86152
 *练习,匿名对象
 */
public class demo {
	
	
	public static void main(String args[])
	{
				Person person=new Person();
				Person person1=new Person();
				person.age=21;
				person.name="lucksim";
				person.like=true;
				person.talk();
				person1=person;
				person1.talk();
	}
}
class Person{
	String name;
	int age;
	boolean like;
	public void talk()
	{
		System.out.print("\n姓名="+name+"\n"+"年龄="+age+"\n"+"是否喜爱="+like);
	}
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值