时值端午假期的第二天。
类:属性和方法
对象:声明并实例化 new
所有对象名称都在栈内存中保存,而对象具体的内容保存在堆内存中,必须使用new关键字才能开辟内存空间。
更准确的说栈内存保存的是堆内存空间的访问地址。
两个栈内存可同时指向一个堆内存。
封装性:
为属性封装、为方法封装
只要是被封装的属性,则必须通过setter和getter方法设置和取得。
构造方法:
在面向对象程序中构造方法主要的作用是为类中的属性初始化。
public class ConsDemo02{
public static void main (String[] args){
Person per= new Person(“张三”,30);//调用构造方法,传递两个参数
per.tell() //输出信息
}
}
匿名对象:
public class ConsDemo02{
public static void main (String[] args){
new Person(“张三”,30).tell(); //匿名对象
}
}
匿名对象没有任何栈引用,只使用了堆内存。
所以此对象在使用一次后就等待被垃圾回收机制回收。
作用:
匿名对象在实际开发中基本上都是作为其他类实例化对象的参数传递的。对象不管是匿名的或非匿的都必须开辟堆内存空间之后才可以使用。
编写类 测试类 使用类
public class ExampleDemo{
public static vode main(String[] args){
String 首字母大写因此为一个类。
String str1="hello"
String str2= new String("hello")
str1 ==str2 为false
因为使用的不同的堆内存空间 值相同 因此==是用来进行地址比较的
println(+(str.equals(str2))) 进行内容比较
"hello".equals("hello") 为true 说明一个字符串可以调用String类中的方法(equals是String类中的方法),也就证明一个字符串就是Sting类中的匿名对象。
String str1="hello" 使用直接赋值之后,以后声明的字符串内容相同,则不会开辟新的内存空间。
以上操作称为共享设计。
如果使用new关键字则开辟新的内存空间。
String类进行操作时,字符串的内容一但声明则不可改变
str=str+"world" 结果为helloworld (此值是别一内存空间 断开原来的空间连接新的内存空间)