Java面向对象小记(1)

1. 创建类 Person

创建对象的内存划分图:

对属性赋值,操作为

对象.属性=赋值。

class Person{
	String name;
	int age;
	public void tell(){
		System.out.println("name:"+ name+" "+"age:"+age);
	}
}

public class MethodDemo01 {
	public static void main(String[] args){
		Person per = null;
		per = new Person();
		per.name = "thystar"; //赋值
		per.age = 22;
		per.tell();

	}
}

赋值后,堆内存空间中添加数据

在极客学院上看到的解释,觉得很好就先记下来:http://www.jikexueyuan.com/course/111_2.html?ss=1

2. 面向对象的编程

类的封装性:

为了避免类中的属性被随意改动,将属性定义为private,用getter和setter方法调用:右键-->Source-->Generate Getters and Setters

class Person{
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void tell(){
		System.out.println("name:"+ getName()+" "+"age:"+getAge());
	}
}

public class MethodDemo01 {
	public static void main(String[] args){
		Person per = null;
		per = new Person();
		per.setName("thystar");
		per.setAge(22);
		per.tell();

	}
}

极客学院改课程网址:http://www.jikexueyuan.com/course/113.html

匿名对象

class Student{
	public void tell(){
		System.out.println("Hello Thystar!");
	}
}

public class Demo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student stu = new Student();
		stu.tell();
		// 匿名对象
		new Student().tell();   //只能使用一次
	}

}

构造方法

class Student{
	public Student(){
		System.out.println("Hello thystar");
	}
}

public class Demo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student stu = new Student();
	}

}

构造方法名称与类名一致,切没有返回值,但是可以传递参数。

class Student{
	String name;
	int age;
	public Student(String name, int age){
		System.out.println("name:"+ name+" "+"age:"+age);
	}
}

public class Demo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student stu = new Student("thystar", 22);
	}

}

构造方法由系统自动定义,其方法也可以重载。

极客学院改课程网址:http://www.jikexueyuan.com/course/113_3.html?ss=1

引用传递

class Ref1{
	int temp = 10;
}

public class Demo02 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Ref1 r1 = new Ref1();
		r1.temp=20;
		System.out.println(r1.temp);
		tell(r1);
		System.out.println(r1.temp);

	}
	public static void tell(Ref1 r2){
		r2.temp = 30;
	}

}

输出结果:

10

20

30

public class Demo3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str1 = "Hello";
		System.out.println(str1);
		tell(str1);
		System.out.println(str1);

	}
	public static void tell(String str){
		str = "thystar";
	}

}

输出结果:

Hello

Hello

极客学院课程网址:  http://www.jikexueyuan.com/course/114.html

this关键字

使用方法

  • 表示类中的属性和调用方法
  • 表示本类中的构造方法
  • 表示当前对象
class Person{
	private String name;
	private int age;

	public Person(String n, int a){
	        this(); //调用本类中的构造方法
		this.name = n;//表示属性
		this.age = a;
	}
	public Person(){
		System.out.println("xxxxxxxxxxxxxx");
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void tell(){
		System.out.println("name:"+ this.getName()+" "+"age:"+this.getAge());//调用方法
	}
}

public class ThisDemo01 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person p = new Person("thystar", 22);
		p.tell();
	}

}

static 关键字

1. 使用static声明属性 ——》 static声明全局属性

2. 使用static声明方法——》  直接通过类名调用

3. 注意点:  使用static方法的时候,只能访问static声明的属性和方法,而非static声明的属性和方法是不能访问的。

静态的属性和方法要用类名直接进行调用。

极客学院地址:http://www.jikexueyuan.com/course/114_3.html?ss=2

时间: 2024-10-29 19:09:03

Java面向对象小记(1)的相关文章

Java面向对象小记(2)

1. 继承 用一个例子说明继承 class Person{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } pu

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

java面向对象的核心思想

Java面向对象-抽象类与接口 1.Java final关键字的使用 package edu.tongji.fni; /*final关键字 * 1.final关键字在java中被称为完结器,表示最终的意思 * 2.final能声明类.方法.属性: * 使用final声明的类不能被继承 * 使用final声明的方法不能被重写 * 使用final声明的变量变成常量,常量是不可以被修改的 */ class People{ //前面加了final下面的类会报错 public void tell(){ }

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

第5篇-JAVA面向对象Ⅰ

第5篇-JAVA面向对象Ⅰ 每篇一句 :面向对象面向君,不负代码不负卿 初学心得: 代码虐我千百遍,我待代码如初恋 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-03| JAVA面向对象 Ⅰ] 1.JAVA作为一种面向对象语言,具有以下基本概念: ● 多态 ● 继承 ● 封装 ● 抽象 ● 类 ● 对象 ● 实例 ● 方法 ● 重载 2.面向对象 什么是面向对象?: 面向对象是一种编程思想 通俗的说:面向对象是一种思考问题的思维方式 为什么使用面向对象以及它的作用 计算机语

《Java面向对象编程第二版》今年出版以来获得读者一致好评。

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.在当当网上获得了1500多条好评: http://product.dangdang.com/9186890.html?point=comment_point 应广大读者的要求,为第一版进行了升级,第二版融合了最新的Java8的语言特性,它继续为Java开发人员们提供丰富全面的技术支持和帮助.在京东网上读者们对第二版的好评如潮,一致认为这是Java开发人员必

java面向对象 泛型

这个第一篇知识梳理的博客,希望我可以坚持下去将知识进行总结. 这是在极客学院里看到的视频,目录如下,蛮清晰的.然后我将视频中所说再记忆下. java面向对象之泛型:认识泛型 Java SE 1.5的新特性,泛型的本质是参数化类型,可以代表任何数据类型. java面向对象之泛型:构造函数中使用 class Gen<T>{ private T value; Gen(T value){//构造函数中就泛型就不需要用尖括号了 this.value=value; } public void setVal

JavaSE入门学习24:Java面向对象补充

一Java中的Object类 Object类是所有Java类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认 继承Object类. public class Person{ // } //等价于 public class Person extends Object{ // } Object类中的方法,适合所有子类. 1)toString()方法 在Object类中定义有public String toString()方法,其返回值是String类型,描述当前对

Java程序设计 实验二 Java面向对象程序设计

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏      实验日期:2015.5.7 实验密级:         预习程度:         实验时间: 仪器组次:          必修/选修:            实验序号: 实验名称:       Java面向对象程序设计 实验目的与要求:实验内容 1. 初步掌握单元测试和TDD 2.